[c++0x] OK to merge cpp0x branch config changes to trunk?

See http://svn.boost.org/svn/boost/branches/cpp0x This branch adds the following config macros: BOOST_NO_CHAR16_T BOOST_NO_CHAR32_T BOOST_NO_CONSTEXPR BOOST_NO_DECLTYPE BOOST_NO_DEFAULTED_FUNCTIONS BOOST_NO_DELETED_FUNCTIONS BOOST_NO_EXPLICIT_CONVERSION_OPERATORS BOOST_NO_EXTERN_TEMPLATE BOOST_NO_RAW_LITERALS BOOST_NO_RVALUE_REFERENCES BOOST_NO_SCOPED_ENUMS BOOST_NO_STATIC_ASSERT BOOST_NO_UNICODE_LITERALS BOOST_NO_VARIADIC_TEMPLATES The particular names were discussed in several threads nearly a year ago. The set of C++0x features detected only covers those available in at least one shipping compiler. Although I've tested locally, I'd appreciate it if someone familiar with Boost.Config could take a look at the branch before the config directories get merged into trunk. --Beman

Beman Dawes wrote:
See http://svn.boost.org/svn/boost/branches/cpp0x
This branch adds the following config macros:
[...] BOOST_NO_DECLTYPE [...]
I see that this macro is defined for GCC 4.3+ when std=c++0x is not used. However, decltype is still available with __decltype__ outside of C++0x experimental mode. Would a #define decltype __decltype__ on this compiler not be a better idea?

AMDG Mathias Gaunard wrote:
Beman Dawes wrote:
See http://svn.boost.org/svn/boost/branches/cpp0x
This branch adds the following config macros:
[...] BOOST_NO_DECLTYPE [...]
I see that this macro is defined for GCC 4.3+ when std=c++0x is not used. However, decltype is still available with __decltype__ outside of C++0x experimental mode.
Would a #define decltype __decltype__ on this compiler not be a better idea?
No it wouldn't. A BOOST_DECLTYPE macro would be acceptable, but effectively overriding the default -std is not a good idea, as it can affect user code. In Christ, Steven Watanabe

Steven Watanabe wrote:
AMDG
Mathias Gaunard wrote:
Beman Dawes wrote:
See http://svn.boost.org/svn/boost/branches/cpp0x
This branch adds the following config macros:
[...] BOOST_NO_DECLTYPE [...]
I see that this macro is defined for GCC 4.3+ when std=c++0x is not used. However, decltype is still available with __decltype__ outside of C++0x experimental mode.
Would a #define decltype __decltype__ on this compiler not be a better idea?
No it wouldn't. A BOOST_DECLTYPE macro would be acceptable, but effectively overriding the default -std is not a good idea, as it can affect user code.
Agreed. When we in effect alter the behavior of a compiler and/or language, it is far less confusing to users to do it in a loud and noisy fashion (BOOST_DECLTYPE) than silently (#define decltype __decltype__). Macros that silently change language features have a long history of unintended consequences. --Beman
participants (3)
-
Beman Dawes
-
Mathias Gaunard
-
Steven Watanabe