
Peter Dimov wrote:
Michel Morin wrote:
`!defined(BOOST_NO_CXX11_SMART_PTR)` does not necessarily mean that the compiler support of rvalue references is available. For example,
How could the standard library have std::unique_ptr without the compiler supporting rvalue references?
Seems like libc++ uses rvalue-ref emulation: http://llvm.org/svn/llvm-project/libcxx/trunk/include/memory
when I use shared_ptr (on trunk) with clang + libc++ in a C++03 mode, I get warnings something like
boost/smart_ptr/shared_ptr.hpp:556:51: warning: rvalue references are a C++11 extension [-Wc++11-extensions] shared_ptr & operator=( std::unique_ptr<Y, D> && r )
Looks like rvalue references are available, but as an extension.
You're right. But compiling with -Werror or -pedantic-errors results in compilation errors. Also BOOST_NO_CXX11_RVALUE_REFERENCES is defined. Regards, Michel