On 11/24/2015 6:03 PM, Andrey Semashev wrote:
On 2015-11-24 23:54, Agustín K-ballo Bergé wrote:
On 11/24/2015 5:20 PM, Andrey Semashev wrote:
Ditto BOOST_HAS_UNION_TYPE_PUNNING_TRICK (doesn't any compiler support this?).
'I'm all with you on this one' but since 'it is not in the standard' language purists will probably complain if it is used unconditionally...
To some extent this is guaranteed by [class.union]/1 in C++11.
No, it isn't.
Why? Reading different members of the standard layout union within the common initial sequence is enough to implement a bitwise_cast.
That would be 9.2 [class.mem]/19, notes are not normative. I can't tell from the context whether this would be enough for a `bitwise_cast` (what is it supposed to do?). The OP talks about "union type punning trick", which is a fine practice in C11 but undefined behavior in C++. Some compilers choose to offer this as a conforming extension. Regards, -- Agustín K-ballo Bergé.- http://talesofcpp.fusionfenix.com