undefined identifier

Oleg code.viator at gmail.com
Thu Oct 18 03:06:53 PDT 2012


Hello
I have struct in one module (vector.d)

struct vec(string S, T=double)
     if( is(T:real) && onlyASCII(S) )
{
     private T[S.length] _data;
     alias vec!(S,T) ttype;
     alias _data this;

     mixin _workaround4424;

     auto opAssign(E)( E[] b ) if( is( E : T ) )
     {
         if( b.length != S.length ) throw new Exception("bad 
length");
         foreach( i, ref m; _data ) m = b[i]; return this;
     }

     auto opAssign(E)( E[S.length] b ) if( is( E : T ) )
     { foreach( i, ref m; _data ) m = b[i]; return this; }

}

and I want to use this in other module

struct mPoint(string S,T=double)
{
     alias vec!(S,T) vect;
     private union
     {
         T[S.length*2] _raw;
         vect[2] _vects;
     }
     alias _raw this;

     @property vect pos(){ return _vects[0]; }
     @property void pos( vect b ){ _vects[0] = b; } //#1

     @property vect vel(){ return _vects[1]; }
     @property void vel( vect b ){ _vects[1] = b; } //#2
}

when compile I have error
#1 Error: undefined identifier '_data'
#2 Error: undefined identifier '_data'

why code in mPoint want use identifier _data?
unittests in vector.d use all of overriding operators well.

may it associate with aliasing of vec to array?
or it associate with overriding opAssign?


More information about the Digitalmars-d-learn mailing list