C++ guys hate static_if?

TommiT tommitissari at hotmail.com
Tue Mar 12 04:51:03 PDT 2013


On Tuesday, 12 March 2013 at 02:39:06 UTC, TommiT wrote:
> struct S1 implements A2 {
>     void foo() { }
>     void bar() { }
> }

That's not good. Types shouldn't have to explicitly say that they 
implement a concept. The fact that a type implements a concept 
should be implicit, i.e. the following (pseudo-code) should work:

concept InputRange {
     if( is(typeof(this.empty) : bool)
     &&  is(typeof(this.front))
     &&  is(typeof(this.popFront() == void) )
}

struct MyRange {
     bool empty() { return false; }
     int  front() { return 42; }
     void popFront() { }
}

void main() {
     static assert(is(MyRange == InputRange));
}


More information about the Digitalmars-d mailing list