|
Boost : |
From: Sohail Somani (s.somani_at_[hidden])
Date: 2006-09-22 09:43:32
Won't that not work in the presence of padding? Sorry for the TP, lookout webmail.
-----Original Message-----
From: boost-bounces_at_[hidden] on behalf of Marcus Lindblom
Sent: Fri 9/22/2006 12:17 AM
To: boost_at_[hidden]
Subject: Re: [boost] Geometry/Vector Lib
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk