Hello,
this is my compiler's information:
ICPC Intel(R) 64, Version 14.0.2.144 Build 20140120
the source code example is not intricacy:
struct vect3{ int x,y,z; vect3(int _x,int _y,int _z):x(_x),y(_y),z(_z){ } }; class vect { union{ int leaf[9]; struct{ vect3 a; vect3 b; vect3 c; }; }; public: vect(int _a,int _b,int _c):a(_a,_b,_c),b(_a,_b,_c),c(_a,_b,_c){ } vect3 getXcoordinate(){return a;} vect3 getYcoordinate(){return b;} vect3 getZcoordinate(){return c;} }; int main() { vect v1=vect(1,2,3); std::cout<<"X is: "<<v1.getXcoordinate().x<<"\tY is: "<<v1.getYcoordinate().y<<std::endl; return 0; }
this code can be compiled by visual studio 2008' s compiler.
but, icpc reports: invalid member for anonymous member class -- class "vect3" has a disallowed member function vect3 a;
I know the error comes from the anonymous struct in an anonymous union. But i just want to use it in that way. How can I do ?