
Howard Hinnant wrote:
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
Yeah, but it isn't very good emulation. I don't recommend it.
Thanks for the info, Howard. Actually, I didn't use std::unique_ptr in a C++03 mode, but I just included <boost/smart_ptr/shared_ptr.hpp> #include <boost/smart_ptr/shared_ptr.hpp> int main(int argc, char* argv[]) { return 0; } This gives me warnings about rvalue references used in <boost/smart_ptr/shared_ptr.hpp>. So I'd be happy if #if !defined( BOOST_NO_CXX11_SMART_PTR ) will be changed to #if !defined( BOOST_NO_CXX11_SMART_PTR ) \ && !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) Another solution might be defining BOOST_NO_CXX11_SMART_PTR in Boost.Config for libc++. Regards, Michel