On 8/16/21 1:59 PM, Ali Çehreli wrote:
>On 8/15/21 1:40 AM, Daniel N wrote:
>static struct Yay
{
string opDispatch(string name, T...)(T vals)
I sometimes wish templates had opDispatch abilities. Then we could instantiate a template with a symbol and the the template could receive it as string just like the way it works for opDispatch. So, this could work:
Flag!isCool isCool;
instead of today's
Flag!"isCool" isCool;
Basically, it would still be a string parameter but the quotes need not be provided:
template Flag(string tag) {
// ...
}
I realize that this might hide some bugs but so does opDispatch, no?
Well, aliases do work with operators, so....
import std.typecons;
struct S
{
alias opDispatch(string foo) = Flag!foo;
}
void main()
{
S.bar x;
import std.traits;
pragma(msg, fullyQualifiedName!(typeof(x))); // std.typecons.Flag!("bar")
}
-Steve