> -----Original Message----- > From: Jonathan Wakely [mailto:jwakely.gcc@xxxxxxxxx] > Sent: Wednesday, September 17, 2014 6:13 PM > To: Andy Falanga (afalanga) > Cc: Andrew Haley; gcc-help@xxxxxxxxxxx > Subject: Re: Possible bug in gcc 4.4.7 > > On 17 September 2014 21:34, Andy Falanga (afalanga) wrote: > > Thank you for the reference. I'm going to have to think on this for > a bit. I read a bit of the definition for reinterpret_cast in the C++ > Draft I have too. I want to figure this out for sure. > > I think you're barking up the wrong tree if you're trying to understand > when reinterpret_cast is suitable ... because it is almost never a good > idea! reinterpret_cast basically means "just shut up and do this cast, > I know what I'm doing", but that means you've lost the advantages of > having the compiler do type checking. Thank you for the warning. In this case, I'm not trying to understand when to violate the rules but, rather, to understand why what I did resulted in undefined behavior. I would have blissfully thought I'd found a bug had I not posted here. I would have thought this, not because of hubris, but because the 4.8 compiler produced the result I was looking for. After being corrected, I want to understand my error. > > The rules Andrew quoted say when it's OK to violate the language's type > system. If you try to break those rules you can use reinterpret_cast to > make the compiler shut up and do what it's told, but you're still > breaking the rules. Ok, I think I'm beginning to understand this better. There is really much to this language and I have much to learn.