Subject: [Boost-bugs] [Boost C++ Libraries] #11815: boost::config defines BOOST_NO_CXX11_RVALUE_REFERENCES under icc 15
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-11-22 00:10:08
#11815: boost::config defines BOOST_NO_CXX11_RVALUE_REFERENCES under icc 15
------------------------------+-------------------------
Reporter: nmusolino@⦠| Owner: johnmaddock
Type: Bugs | Status: new
Milestone: To Be Determined | Component: config
Version: Boost 1.56.0 | Severity: Problem
Keywords: icc |
------------------------------+-------------------------
When compiling with icc version 15.0.4 under the C++11 standard, the macro
BOOST_NO_CXX11_RVALUE_REFERENCES is defined, even though icc supports
rvalue references.
I discovered this when attempting to use the intrusive_ptr class
template's move constructor, so I created a demonstration that uses
intrusive_ptr.
{{{
$ icc --version
icc (ICC) 15.0.4 20150805
icc -I/path/to/boost/1.56.0/include/ -std=c++11 ./intrusive_ptr_test.cpp
-o intrusive_ptr_test_icc
$ ./intrusive_ptr_test_icc
__cplusplus: 201103
BOOST_VERSION: 105600
std::is_nothrow_move_constructible<S_ptr>: false
BOOST_NO_CXX11_RVALUE_REFERENCES: <undefined>
__INTEL_COMPILER: 1500
BOOST_INTEL_CXX_VERSION: 1500
}}}
I expected that BOOST_NO_CXX11_RVALUE_REFERENCES would not be defined,
because this version of icc [https://software.intel.com/en-us/articles
/c0x-features-supported-by-intel-c-compiler supports rvalue references].
When built using g++ 5.2.0, the macro is not defined, so the intrusive_ptr
class template is nothrow-move-constructible.
{{{
$ g++ --version
g++ (TPM built 20150717) 5.2.0
Copyright (C) 2015 Free Software Foundation, Inc.
$ g++ -I/path/to/boost/1.56.0/include/ -std=c++11 ./intrusive_ptr_test.cpp
-o intrusive_ptr_test_gcc
$ ./intrusive_ptr_test_gcc
__cplusplus: 201103
BOOST_VERSION: 105600
std::is_nothrow_move_constructible<S_ptr>: true
BOOST_NO_CXX11_RVALUE_REFERENCES: <undefined>
}}}
I believe this is the same problem reported in
[https://svn.boost.org/trac/boost/ticket/9829 ticket #9829].
This problem does not occur in boost 1.58.0.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/11815> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:19 UTC