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