Simen kjaeraas wrote:
Leandro Lucarella <llu...@gmail.com> wrote:
it would be nice
to have some sort of way to tell the compiler to write the template
constraints for us (the obvious ones at least, there might be other
template constraints desired besides the ones the ones the compiler can
figure out). This way, the errors can be improved without user
intervention.

How's about @optional? Marks an entire function as optional, i.e. will
not be included if it does not compile.

struct foo( T ) {
  @optional
  void bar( ) { // Will not exist if T cannot be flabbergasted.
    T tmp;
    t.flabbergast( );
  }
}


This can be trivially shown to be NP-complete.

void bar(T)()
{
   static if ( big_function!T) {
     T t;
     t.flabbergast( );
   }
}

Compiler cannot determine if T needs flabbergast(), unless it evaluates big_function. Which can be arbitrarily complicated.

We're taking the approach of making the default error message in such cases as helpful as possible.

Reply via email to