
Beman Dawes wrote:
On Tue, Feb 22, 2011 at 5:06 PM, Vicente Botet <vicente.botet@wanadoo.fr>wrote:
Hi,
is there a macro that can be tested to know if a compiler doesn't support classes with constructors in unions?
No, and GCC 4.6 is supporting them. See http://gcc.gnu.org/projects/cxx0x.html
The macro might be named BOOST_NO_UNRESTRICTED_UNIONS.
See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf
Do you have an actual need for such a macro? We only want to add macros that will be actually used by Boost libraries.
I was testing your Endian library and the macro used to know if constructors shouldn't be used for the endian class is up to now # if defined(BOOST_NO_DEFAULTED_FUNCTIONS) && defined(BOOST_ENDIAN_FORCE_PODNESS) # define BOOST_ENDIAN_NO_CTORS # endif I tested with gcc 4.4/4.5.1 c++0x with BOOST_ENDIAN_FORCE_PODNESS defined and the union test fails. This should mean that for these versions BOOST_NO_DEFAULTED_FUNCTIONS is not defined so the constructors are defined. Shouldn't you use BOOST_NO_UNRESTRICTED_UNIONS instead of BOOST_NO_DEFAULTED_FUNCTIONS in this case?
If you do have a need, would you like to try your hand at providing the macro, test cases, docs, etc?
Yes, I know the process :). Unfortunately I don't have access to gcc 4.6 now (my hard drive was broken :( ), so I can not test it now. I will see once I reach to reinstall a 4.6 version on my new computer. Best, Vicente -- View this message in context: http://boost.2283326.n4.nabble.com/config-C-0X-Compiler-doesn-t-support-clas... Sent from the Boost - Dev mailing list archive at Nabble.com.