Thanks for the answers!
How to compare two types? Will I use T.stringof instead of this?
void main()
{
if(One is Two) {} //Error: type One is not an expression
//Error: type Two is not an expression
}
class One {}
class Two {}
Regards,
MarisaLovesUsAll
There's two ways:
static if(is(One == Two)) {
}
That compares the static types in a form of conditional
compilation. http://dlang.org/expression.html#IsExpression
If you want to compare the runtime type of a class object, you
can do:
if(typeid(obj_one) == typeid(obj_two))
that should
Adam D. Ruppe:
If you want to compare the runtime type of a class object, you
can do:
if(typeid(obj_one) == typeid(obj_two))
that should tell you if they are the same dynamic class type.
And what about:
if (is(typeof(obj_one) == typeof(obj_two)))
Bye,
bearophile
typeof() always gets the static type, typeid() is needed if you
want the dynamic type.
On Sunday, 31 August 2014 at 23:53:31 UTC, bearophile wrote:
if (is(typeof(obj_one) == typeof(obj_two)))
You could, but since it is static info you might as well use
static if.