Compile time checks and alias this

Andrea Fontana nospam at example.com
Tue Dec 17 13:28:11 PST 2013


On Tuesday, 17 December 2013 at 17:19:26 UTC, anonymous wrote:
> 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.

Hey didn't this mean "is derived from"? :)
>>
>> Is there a way to check this at compile time?
>
> is(T : MyClass1)



More information about the Digitalmars-d-learn mailing list