OK to remove Concept related config macros?

I notice we have some Boost.Config macros related to C++0x concepts, except of course concepts are no longer part of C++0x... anyone object if I remove these along with their associated tests? Regards, John.

On 14 Mar 2011, at 18:25, John Maddock wrote:
I notice we have some Boost.Config macros related to C++0x concepts, except of course concepts are no longer part of C++0x... anyone object if I remove these along with their associated tests?
I know that some people are implementing concepts in clang, and hoping to look at getting them into the next version of C++. Chris

AMDG On 03/14/2011 11:33 AM, Christopher Jefferson wrote:
On 14 Mar 2011, at 18:25, John Maddock wrote:
I notice we have some Boost.Config macros related to C++0x concepts, except of course concepts are no longer part of C++0x... anyone object if I remove these along with their associated tests? I know that some people are implementing concepts in clang, and hoping to look at getting them into the next version of C++.
Nothing in Boost is going to be needing these macros in the foreseeable future. We can them back in 10 years if we need to. In Christ, Steven Watanabe

I notice we have some Boost.Config macros related to C++0x concepts, except of course concepts are no longer part of C++0x... anyone object if I remove these along with their associated tests? I know that some people are implementing concepts in clang, and hoping to look at getting them into the next version of C++.
Indeed, but there are no *current* compilers using them, and they won't be part of C++0x so at the very least the macros are misnamed.
Nothing in Boost is going to be needing these macros in the foreseeable future. We can them back in 10 years if we need to.
Indeed, and in any case C++2x concepts may look quite different to the 0x proposal, Oh and no Boost code seems to depend upon these either... Cheers, John.

On 3/15/2011 4:24 PM, John Maddock wrote:
Indeed, and in any case C++2x concepts may look quite different to the 0x proposal, Oh and no Boost code seems to depend upon these either...
boost/xpressive/match_results.hpp has a #ifdef BOOST_HAS_CONCEPTS, but I'm not opposed to ripping it out. -- Eric Niebler BoostPro Computing http://www.boostpro.com

Hi John, something seems to be going wrong. After the removal, I get /home/hunold/src/devel/boost/boost/type_traits/common_type.hpp:70:22: warning: variadic templates only available with -std=c++0x or -std=gnu++0x /home/hunold/src/devel/boost/boost/type_traits/common_type.hpp:150:46: warning: variadic templates only available with -std=c++0x or -std=gnu++0x as soon as TypeTraits are used. This ist gcc-4.5, gcc-4.4 and gcc-4.6 (Mingw) Yours, Jürgen -- * Dipl.-Math. Jürgen Hunold ! Ingenieurgesellschaft für * voice: ++49 511 262926 57 ! Verkehrs- und Eisenbahnwesen mbH * fax : ++49 511 262926 99 ! Lister Straße 15 * juergen.hunold@ivembh.de ! www.ivembh.de * * Geschäftsführer: ! Sitz des Unternehmens: Hannover * Prof. Dr.-Ing. Thomas Siefer ! Amtsgericht Hannover, HRB 56965 * PD Dr.-Ing. Alfons Radtke !

Jürgen Hunold-2 wrote:
Hi John,
something seems to be going wrong. After the removal, I get
/home/hunold/src/devel/boost/boost/type_traits/common_type.hpp:70:22: warning: variadic templates only available with -std=c++0x or -std=gnu++0x /home/hunold/src/devel/boost/boost/type_traits/common_type.hpp:150:46: warning: variadic templates only available with -std=c++0x or -std=gnu++0x
as soon as TypeTraits are used. This ist gcc-4.5, gcc-4.4 and gcc-4.6 (Mingw)
comon_type uses BOOST_NO_VARIADIC_TEMPLATES to protect the use of variadic templates. #if !defined(BOOST_NO_VARIADIC_TEMPLATES) We should check how BOOST_NO_VARIADIC_TEMPLATES is defined for this compilers after the change. best, Vicente -- View this message in context: http://boost.2283326.n4.nabble.com/OK-to-remove-Concept-related-config-macro... Sent from the Boost - Dev mailing list archive at Nabble.com.

something seems to be going wrong. After the removal, I get
Please bare with me, it's a big overhaul of all the C++0x stuff, and there are some breakages - basically the Boost.Config test case that was provided for this isn't sufficient to fail in non-C++0x mode, so it got defined.... will fix shortly as soon as I can figure out a proper test case... Thanks for the heads up, John.

/home/hunold/src/devel/boost/boost/type_traits/common_type.hpp:70:22: warning: variadic templates only available with -std=c++0x or -std=gnu++0x /home/hunold/src/devel/boost/boost/type_traits/common_type.hpp:150:46: warning: variadic templates only available with -std=c++0x or -std=gnu++0x
as soon as TypeTraits are used. This ist gcc-4.5, gcc-4.4 and gcc-4.6 (Mingw)
OK here's the lowdown: GCC *does* support a number of C++0x features in non-C++0x mode, including variadic templates... that's because these features are used within the std lib.... but... gcc emits copious warnings if you use these features without turning off all warnings from the header that uses them with #pragma system_header. This also causes some of the type_traits tests to fail because they're run with warnings-as-errors. Oh and there's no way to selectively turn these warnings off, or to selectively turn them into errors :-( So.... what I think I'll do, is disable those features again, and code the tests to emit a #error in non-C++0x mode. John.

On Wed, Mar 16, 2011 at 11:33 AM, John Maddock <boost.regex@virgin.net> wrote:
/home/hunold/src/devel/boost/boost/type_traits/common_type.hpp:70:22: warning: variadic templates only available with -std=c++0x or -std=gnu++0x /home/hunold/src/devel/boost/boost/type_traits/common_type.hpp:150:46: warning: variadic templates only available with -std=c++0x or -std=gnu++0x
as soon as TypeTraits are used. This ist gcc-4.5, gcc-4.4 and gcc-4.6 (Mingw)
OK here's the lowdown:
GCC *does* support a number of C++0x features in non-C++0x mode, including variadic templates... that's because these features are used within the std lib.... but... gcc emits copious warnings if you use these features without turning off all warnings from the header that uses them with #pragma system_header. This also causes some of the type_traits tests to fail because they're run with warnings-as-errors. Oh and there's no way to selectively turn these warnings off, or to selectively turn them into errors :-(
FWIW, Clang (2.9, top-of-tree) does the same thing, but there you can use -Werror=c++0x-extensions . - Doug
participants (7)
-
Christopher Jefferson
-
Doug Gregor
-
Eric Niebler
-
John Maddock
-
Jürgen Hunold
-
Steven Watanabe
-
Vicente Botet