Compile time checks and alias this

anonymous anonymous at example.com
Tue Dec 17 09:19:24 PST 2013


On Tuesday, 17 December 2013 at 16:50:18 UTC, Andrea Fontana 
wrote:
> I have something like this:
>
> enum isValid(T) = is(T == MyClass1);
>
> class MyClass1 {}
>
> class MyContainer(T)
> {
>    T value;
>    alias value this;
> }
>
> void main()
> {
> 	assert(isValid!MyClass1, "MyClass1 isn't valid");
> 	assert(isValid!(MyContainer!MyClass1), "MyContainer!MyClass1 
> isn't valid");
> }
>
> second assert conditions is false. But in normal code 
> MyContainer!Myclass1 is casted automagically to MyClass1 and
> works almost as MyClass1.
>
> Is there a way to check this at compile time?

is(T : MyClass1)


More information about the Digitalmars-d-learn mailing list