library defined typedef

Trass3r un at known.com
Sun Jul 25 15:11:53 PDT 2010


We had a thread where a suggestion was made for a library defined typedef:

enum Type
{
     Independent,
     Super,
     Sub,
     Parallel,
}

struct Typedef( T, Type type = Type.Sub, T init = T.init, string _f =  
__FILE__, int _l = __LINE__ )
{
     T payload = init;

     static if ( type != Type.Independent )
     {
         this( T value )
         {
             payload = value;
         }
     }
     static if ( type == Type.Sub || type == Type.Parallel )
     {
         alias payload this;
     }
     static if ( type == Type.Super )
     {
         typeof( this ) opAssign( T value )
         {
             payload = value;
             return this;
         }
     }
     else static if ( type == Type.Sub )
     {
         @disable void opAssign( T value );
     }
}

One problem is it still lacks proper support for explicit and implicit  
casting.
But will it be included in typecons?
I certainly need a proper solution to this for my coding.


More information about the Digitalmars-d mailing list