
22 Sep
2006
22 Sep
'06
7:17 a.m.
Olivier Grant wrote:
I agree on your point, on the other hand, you can do this :
class vector3d { public: float x, y, z;
float operator[]( int index ) const { return ((float *)this)[index]; }
float & operator[]( int index ) { return ((float *)this)[index]; }
/* ... */ };
in which case "v.x" and "v[0]" are the same thing. this is what I currently have. Now some people will argument its a hack maybe.
I've sometimes done just: class vector3d { public: float x, y, z; float operator[]( int index ) const { return (&x)[index]; } /* ... */ }; /Marcus