id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 11815,boost::config defines BOOST_NO_CXX11_RVALUE_REFERENCES under icc 15,nmusolino@…,John Maddock,"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: false BOOST_NO_CXX11_RVALUE_REFERENCES: __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: true BOOST_NO_CXX11_RVALUE_REFERENCES: }}} 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.",Bugs,closed,To Be Determined,config,Boost 1.54.0,Problem,worksforme,icc,