[C++0x] The cpp0x branch has been merged into trunk

The cpp0x branch has been merged into trunk, enabling a bunch of BOOST_NO_* macros for C++0x feature tests. This should have no impact on existing code, so be sure to let me know if it causes any problems. --Beman

Hi, ----- Original Message ----- From: "Beman Dawes" <bdawes@acm.org> To: "Boost Developers List" <boost@lists.boost.org> Sent: Wednesday, February 25, 2009 7:11 PM Subject: [boost] [C++0x] The cpp0x branch has been merged into trunk
The cpp0x branch has been merged into trunk, enabling a bunch of BOOST_NO_* macros for C++0x feature tests.
This should have no impact on existing code, so be sure to let me know if it causes any problems.
What about adding _DELETE and _DEFAULT macros as #if defined(BOOST_HAS_DELETED_FUNCTIONS) #define BOOST_COPY_ASSIGNEMENT_DELETE(T) \ T& operator=(const T&)=delete; #else #define BOOST_COPY_ASSIGNEMENT_DELETE(T) \ private: \ T& operator=(const T&); \ public: #if defined(BOOST_HAS_DEFAULTED_FUNCTIONS) #define BOOST_DEFAULT_CONSTRUCTOR_DEFAULT(T) \ T()=default; \ #define BOOST_COPY_ASSIGNEMENT_DEFAULT(T) \ T& operator=(const T& rhs)=default; \ #else // !defined(BOOST_HAS_DEFAULTED_FUNCTIONS) #define BOOST_DEFAULT_CONSTRUCTOR_DEFAULT(T) \ inline T(){}; \ #define BOOST_COPY_ASSIGNEMENT_DEFAULT(T) \ inline T& operator=(const T& rhs) { \ T tmp(rhs); \ swap(tmp);\ return this;\ } #endif // !defined(BOOST_HAS_DEFAULTED_FUNCTIONS) of course we will need to change BOOST_HAS_ by BOOST_NO_ on the attached files. Best, Vicente

Beman Dawes wrote:
The cpp0x branch has been merged into trunk, enabling a bunch of BOOST_NO_* macros for C++0x feature tests.
This should have no impact on existing code, so be sure to let me know if it causes any problems.
What do you recommend for current users of macros like BOOST_HAS_DECLTYPE? Is that macro deprecated? -- Eric Niebler BoostPro Computing http://www.boostpro.com

On Wed, Feb 25, 2009 at 1:57 PM, Eric Niebler <eric@boost-consulting.com> wrote:
Beman Dawes wrote:
The cpp0x branch has been merged into trunk, enabling a bunch of BOOST_NO_* macros for C++0x feature tests.
This should have no impact on existing code, so be sure to let me know if it causes any problems.
What do you recommend for current users of macros like BOOST_HAS_DECLTYPE? Is that macro deprecated?
Yep. Deprecating the BOOST_HAS_* macros for features that made it into C++0x is the next step. No sure when that should occur, and exactly what should be done. --Beman

The cpp0x branch has been merged into trunk, enabling a bunch of BOOST_NO_* macros for C++0x feature tests.
Thanks Beman!
This should have no impact on existing code, so be sure to let me know if it causes any problems.
Did you intend to delete the file no_std_unordered_fail.cpp - it's still referenced by the tests. John.

On Fri, Feb 27, 2009 at 5:20 AM, John Maddock <john@johnmaddock.co.uk> wrote:
The cpp0x branch has been merged into trunk, enabling a bunch of BOOST_NO_* macros for C++0x feature tests.
Thanks Beman!
This should have no impact on existing code, so be sure to let me know if it causes any problems.
Did you intend to delete the file no_std_unordered_fail.cpp - it's still referenced by the tests.
No. I should not have even touched that file. Fixed. Hum... The merge also failed to mark a whole bunch of new files as needing to be added. That's fixed too. Thanks for noticing this! --Beman

On Wed, Feb 25, 2009 at 1:11 PM, Beman Dawes <bdawes@acm.org> wrote:
The cpp0x branch has been merged into trunk, enabling a bunch of BOOST_NO_* macros for C++0x feature tests.
This should have no impact on existing code, so be sure to let me know if it causes any problems.
The trunk tests are starting to cycle, and both BOOST_HAS_LONG_LONG and BOOST_NO_LONG_LONG are getting defined on some platforms. I'll fix that, but probably not until Sunday. --Beman

Beman Dawes wrote:
The cpp0x branch has been merged into trunk, enabling a bunch of BOOST_NO_* macros for C++0x feature tests.
This should have no impact on existing code, so be sure to let me know if it causes any problems.
Is there a macro that shows if the "auto" keyword has C++0x meaning?

On Sun, Mar 8, 2009 at 12:08 PM, Andrey Semashev <andrey.semashev@gmail.com> wrote:
Is there a macro that shows if the "auto" keyword has C++0x meaning?
Not yet. Care to submit one? Do any compilers support 0x auto? GCC 4.4 is supposed to support 0x auto (at least partially), but won't ship until summer IIRC. --Beman

Beman Dawes wrote:
On Sun, Mar 8, 2009 at 12:08 PM, Andrey Semashev <andrey.semashev@gmail.com> wrote:
Is there a macro that shows if the "auto" keyword has C++0x meaning?
Not yet. Care to submit one?
Any suggestions for the naming? BOOST_NO_AUTO_DECLARATIONS? BOOST_NO_AUTO_MULTIDECLARATIONS?
Do any compilers support 0x auto? GCC 4.4 is supposed to support 0x auto (at least partially), but won't ship until summer IIRC.
Yes, I'm too aware only of GCC 4.4, but it's a sufficient precedent.

Andrey Semashev wrote:
Beman Dawes wrote:
On Sun, Mar 8, 2009 at 12:08 PM, Andrey Semashev <andrey.semashev@gmail.com> wrote:
Is there a macro that shows if the "auto" keyword has C++0x meaning?
Not yet. Care to submit one?
Any suggestions for the naming? BOOST_NO_AUTO_DECLARATIONS? BOOST_NO_AUTO_MULTIDECLARATIONS?
Do any compilers support 0x auto? GCC 4.4 is supposed to support 0x auto (at least partially), but won't ship until summer IIRC.
Yes, I'm too aware only of GCC 4.4, but it's a sufficient precedent.
VS2010 is another one, with a ship date later than this summer but reasonably before 2010. Bo Persson

On Wed, Mar 11, 2009 at 2:21 PM, Bo Persson <bop@gmb.dk> wrote:
Andrey Semashev wrote:
Beman Dawes wrote:
On Sun, Mar 8, 2009 at 12:08 PM, Andrey Semashev <andrey.semashev@gmail.com> wrote:
Is there a macro that shows if the "auto" keyword has C++0x meaning?
Not yet. Care to submit one?
Any suggestions for the naming? BOOST_NO_AUTO_DECLARATIONS? BOOST_NO_AUTO_MULTIDECLARATIONS?
Do any compilers support 0x auto? GCC 4.4 is supposed to support 0x auto (at least partially), but won't ship until summer IIRC.
Yes, I'm too aware only of GCC 4.4, but it's a sufficient precedent.
VS2010 is another one, with a ship date later than this summer but reasonably before 2010.
Ah! I'd forgotten VS2010 has C++0x auto support. I really need to concentrate on all the half-complete Boost projects I'm working on. Plus there are going to be a stream of compiler releases with various 0x features over the next year or two. So it would be great if someone else could take on adding C++0x macros as a project. (And not John Maddock, either, as he has already paid his dues when it comes to configuration macros!) While it is really easy to add the macros, it does take a bit of time to monitor tests on various compilers to be sure they all work. --Beman

Beman Dawes wrote:
On Wed, Mar 11, 2009 at 2:21 PM, Bo Persson <bop@gmb.dk> wrote:
Andrey Semashev wrote:
Beman Dawes wrote:
On Sun, Mar 8, 2009 at 12:08 PM, Andrey Semashev <andrey.semashev@gmail.com> wrote:
Is there a macro that shows if the "auto" keyword has C++0x meaning? Not yet. Care to submit one? Any suggestions for the naming? BOOST_NO_AUTO_DECLARATIONS? BOOST_NO_AUTO_MULTIDECLARATIONS?
Do any compilers support 0x auto? GCC 4.4 is supposed to support 0x auto (at least partially), but won't ship until summer IIRC. Yes, I'm too aware only of GCC 4.4, but it's a sufficient precedent. VS2010 is another one, with a ship date later than this summer but reasonably before 2010.
Ah! I'd forgotten VS2010 has C++0x auto support.
The macros went into trunk at revision 51733. I also enabled several 0x features for VS2010, as the configuration tests seem to pass on CTP version. One thing I'm not sure about is whether these features are supported for Codegear or Borland. It seems to include some 0x features, so I left these macros undefined for them. I'll see if the tests fail on these compilers and define the macros if needed. BTW: What's the difference between codegear.hpp and borland.hpp? Isn't it the same compiler?

Andrey Semashev wrote:
One thing I'm not sure about is whether these features are supported for Codegear or Borland. It seems to include some 0x features, so I left these macros undefined for them. I'll see if the tests fail on these compilers and define the macros if needed. http://www.codegear.com/products/cppbuilder/whats-new/
In short, CodeGear C++Builder 2009 supports: - R-value references - Scoped enumerations, enum forward decls, explicit typing - Explicit conversion operators - static_assert - Native type traits - Alignof - Decltype - Extern templates Oh, and it includes Boost 1.35. Sebastian

On Thu, Mar 12, 2009 at 10:56 AM, Andrey Semashev <andrey.semashev@gmail.com> wrote:
Beman Dawes wrote:
On Wed, Mar 11, 2009 at 2:21 PM, Bo Persson <bop@gmb.dk> wrote:
Andrey Semashev wrote:
Beman Dawes wrote:
On Sun, Mar 8, 2009 at 12:08 PM, Andrey Semashev <andrey.semashev@gmail.com> wrote:
Is there a macro that shows if the "auto" keyword has C++0x meaning?
Not yet. Care to submit one?
Any suggestions for the naming? BOOST_NO_AUTO_DECLARATIONS? BOOST_NO_AUTO_MULTIDECLARATIONS?
The macros went into trunk at revision 51733. I also enabled several 0x features for VS2010, as the configuration tests seem to pass on CTP version.
Revision 51733 broke the regression testing system so has been reverted. It looks like not everything that was required got committed. Please fix and recommit. Thanks, --Beman

Beman Dawes wrote:
The macros went into trunk at revision 51733. I also enabled several 0x features for VS2010, as the configuration tests seem to pass on CTP version.
Revision 51733 broke the regression testing system so has been reverted. It looks like not everything that was required got committed.
Please fix and recommit.
Committed in 51880. I hope I didn't screw anything this time.

On Sat, Mar 21, 2009 at 10:05 AM, Andrey Semashev <andrey.semashev@gmail.com
wrote:
Beman Dawes wrote:
The macros went into trunk at revision 51733. I also enabled several 0x
features for VS2010, as the configuration tests seem to pass on CTP version.
Revision 51733 broke the regression testing system so has been reverted. It looks like not everything that was required got committed.
Please fix and recommit.
Committed in 51880. I hope I didn't screw anything this time.
FWIW, I tried a couple of tests here. Work fine. --Bemn

On Thu, Mar 12, 2009 at 10:56 AM, Andrey Semashev <andrey.semashev@gmail.com> wrote:
Beman Dawes wrote:
On Wed, Mar 11, 2009 at 2:21 PM, Bo Persson <bop@gmb.dk> wrote:
Andrey Semashev wrote:
Beman Dawes wrote:
On Sun, Mar 8, 2009 at 12:08 PM, Andrey Semashev <andrey.semashev@gmail.com> wrote:
Is there a macro that shows if the "auto" keyword has C++0x meaning?
Not yet. Care to submit one?
Any suggestions for the naming? BOOST_NO_AUTO_DECLARATIONS? BOOST_NO_AUTO_MULTIDECLARATIONS?
Do any compilers support 0x auto? GCC 4.4 is supposed to support 0x auto (at least partially), but won't ship until summer IIRC.
Yes, I'm too aware only of GCC 4.4, but it's a sufficient precedent.
VS2010 is another one, with a ship date later than this summer but reasonably before 2010.
Ah! I'd forgotten VS2010 has C++0x auto support.
The macros went into trunk at revision 51733. I also enabled several 0x features for VS2010, as the configuration tests seem to pass on CTP version.
Hum... VS2010 changes may not be the best idea yet. My understanding that when the beta ships the C++0x features will almost certainly be different from the set in the CTP release, which was very preliminary. Not to mention changes between beta and release. With Borland/Godegear we held off config changes until the product actually shipped. And that was a good thing as they ended up pulling features at the last minute because of reliability concerns. --Beman

Beman Dawes wrote:
The macros went into trunk at revision 51733. I also enabled several 0x features for VS2010, as the configuration tests seem to pass on CTP version.
Hum... VS2010 changes may not be the best idea yet. My understanding that when the beta ships the C++0x features will almost certainly be different from the set in the CTP release, which was very preliminary. Not to mention changes between beta and release.
With Borland/Godegear we held off config changes until the product actually shipped. And that was a good thing as they ended up pulling features at the last minute because of reliability concerns.
Good point, I will disable VC2010 changes for now. This makes me wonder if we should enable these features even for the yet to be released GCC?

On Mon, Mar 16, 2009 at 1:02 PM, Andrey Semashev <andrey.semashev@gmail.com> wrote:
Beman Dawes wrote:
The macros went into trunk at revision 51733. I also enabled several 0x features for VS2010, as the configuration tests seem to pass on CTP version.
Hum... VS2010 changes may not be the best idea yet. My understanding that when the beta ships the C++0x features will almost certainly be different from the set in the CTP release, which was very preliminary. Not to mention changes between beta and release.
With Borland/Godegear we held off config changes until the product actually shipped. And that was a good thing as they ended up pulling features at the last minute because of reliability concerns.
Good point, I will disable VC2010 changes for now. This makes me wonder if we should enable these features even for the yet to be released GCC?
Judgment call, I guess. Once a compiler gets to the release candidate stage, it should be pretty safe. --Beman
participants (7)
-
Andrey Semashev
-
Beman Dawes
-
Bo Persson
-
Eric Niebler
-
John Maddock
-
Sebastian Redl
-
vicente.botet