Boost logo

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