Struct with default ctor (Was: [dmd-beta] dmd 2.064 beta take 2)

Maxim Fomin maxim at maxim-fomin.ru
Sun May 19 23:28:01 PDT 2013


On Monday, 20 May 2013 at 06:10:22 UTC, Kenji Hara wrote:
> I know at least two cases which T.init is commonly used.
>
> 1. Inside predicate template for type T.
>
> template isSomething(T) {
>     enum isSomething = is(typeof({
>         //T t1;    // not good if T is nested struct, or has 
> @disable this()
>         //T t2 = void; auto x = t2;  // not good if T is 
> non-mutable type
>         T t = T.init;   // avoid default construct check
>         ...use t...
>     }));
> }
>
> 2. Some library utilities that treats object state directly, 
> e.g.
> std.conv.emplace
>
> Kenji Hara

I see. But unfortunately this undermines @disable and defeats 
arguments for using it. @disable is another feature (like ref and 
@safe) which cannot be fixed be design.


More information about the Digitalmars-d mailing list