October 18, 2012 undefined identifier | ||||
---|---|---|---|---|
| ||||
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? |
Copyright © 1999-2021 by the D Language Foundation