Andrew Pinski <[EMAIL PROTECTED]> writes:

| > You can work around this by using union's of pointers of both non-const 
| > and const types, but the reinterpret_cast solution would be more attractive.
| > 
| > Thoughts?
| 
| This has nothing to do with const vs non-const but rather
| a<int> and a<const int> are two seperate types which are not related in any 
way.
| The C++ standard defines these two types as seperate types and are not 
compatiable
| in any way for aliasing.

???

3.10/15:

   If a program attempts to access the stored value of an object
   through an lvalue of other than one of the following types the
   behavior is undefined48): 
   -- the dynamic type of the object,

   -- *a cv-qualified version of the dynamic type of the object*,

   -- a type that is the signed or unsigned type corresponding to the
      dynamic type of the object,

   -- a type that is the signed or unsigned type corresponding to a
      cv-qualified version of the dynamic type of the object,

   -- an aggregate or union type that includes one of the
      aforementioned types among its members (including,
      recursively, a member of a subaggregate or contained union),

   -- a type that is a (possibly cv-qualified) base class type of the
      dynamic type of the object,

   -- a char or unsigned char type.

-- Gaby

Reply via email to