I wish all qualifiers were revisited with an eye for simplification
    Timon Gehr 
    timon.gehr at gmx.ch
       
    Sat Aug 15 01:35:32 UTC 2020
    
    
  
On 15.08.20 03:29, Timon Gehr wrote:
> 
>> Simple questions should have simple answers.
> 
> If the above implementation of isCopyable is not the one you want, 
> something else is off.
Oh, actually I misspoke, didn't notice that you changed my suggestion 
from the github issue from __traits(compiles, ...) to is(typeof(...)).
Use __traits(compiles, ...), not is(typeof(...)). typeof assigns types 
to expressions that would not otherwise compile, even lambdas:
void main(){
     int x;
     static void foo(){
         pragma(msg, typeof(()=>x));             // int delegate() pure 
nothrow @nogc @safe
         pragma(msg, __traits(compiles, ()=>x)); // false
     }
}
There is this persistent myth that __traits(compiles, ...) is the same 
as is(typeof(...)) this is not the case and IIRC I have used it to 
demonstrate that most template constraints in Phobos don't work correctly.
    
    
More information about the Digitalmars-d
mailing list