digitalmars.D.learn - Compile time checks and alias this
- Andrea Fontana (18/18) Dec 17 2013 I have something like this:
 - anonymous (3/21) Dec 17 2013 is(T : MyClass1)
 - Andrea Fontana (2/29) Dec 17 2013
 - Chris Cain (4/9) Dec 17 2013 It actually means "is implicitly convertable to", which "is
 
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?
 Dec 17 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)
 Dec 17 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:Hey didn't this mean "is derived from"? :)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)
 Dec 17 2013
On Tuesday, 17 December 2013 at 21:28:12 UTC, Andrea Fontana wrote:Hey didn't this mean "is derived from"? :)It actually means "is implicitly convertable to", which "is derived from" satisfies.Is there a way to check this at compile time?is(T : MyClass1)
 Dec 17 2013








 
 
 
 "Chris Cain" <clcain uncg.edu>