On 4/9/16 6:10 AM, Lucien wrote:
Hello.

When I do:

---------------------
class MyClass{..}
class YourClass{..}
class OurClass{..}

YourClass yc = new YourClass();

foreach (auto id; [ typeid(MyClass), typeid(YourClass), typeid(OurClass) ])
{
   if (typeid(yc) == id)
   {
     writeln("It works !");
   }
}
---------------------
The compiler says: basic type expected, not auto
Why can't I have one time the type id of MyClass, then of YourClass and
of OurClass ?
Is there an alternative ?

I know this is not exactly what you may be expecting, but you could do what you want this way:

import std.meta: AliasSeq;

foreach(classType; AliasSeq!(MyClass, YourClass, OurClass))
{
   // in here, classType is now an alias for the actual class
   auto id = typeid(classType); // if you want it in TypeInfo_Class form
}

This is called a static foreach.

-Steve

Reply via email to