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?

Reply via email to