inferred vs. annotated attributes

Q. Schroll via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Sep 10 01:23:35 PDT 2016


Is there a difference between inferred and annotated attributes?
Example:

     struct X(T)
     {
         this(S)(in S[] arr) // inferred pure
         { }
     }

     void main() pure
     {
         X!uint mut = [ 1, 2 ]; // proves inference (cf. main is 
pure)
         // immutable X!uint imm1 = [ 1, 2 ];
         // auto imm2 = immutable X!uint([1, 2]);
     }

The commented lines yield error messages claiming the constructor 
cannot deduce function from argument types !()(int[]) immutable, 
however it can, if "pure" is explicitly annotated.

Is this a bug or did I get something wrong about inference / 
unique expressions?


More information about the Digitalmars-d-learn mailing list