
Hello, Michael. Wednesday, November 12, 2008 at 12:03:41 AM you wrote: MM> I'm pretty sure make_shared relies on implementation details of MM> boost::shared_ptr. Also I IIRC boost::shared_ptr's aliasing constructor MM> isn't in std::tr1::shared_ptr. MM> There are other reasons that you might want to use the boost versions MM> over the tr1 versions. For instance the boost unordered containers are MM> supposedly faster than the vc9sp1 tr1 implementation and the vc9sp1 MM> tr1::function has a broken swap which prevents it from being used in the MM> std::containers because of the "Swaptimization". By the way when C++0x will be committed and std::tr1 namespace will be merged with std namespace a lot of code will become uncompilable because of both std and boost namespaces exposed into global or local scope. ACSoft wrote into boost-users mailing list: ----------------------------------------------- Either way, as soon as people start to use c++0x compiler and c++0x-conform stl implementations (in fact a lot of people already do - like me), all the old code that uses using namespace std and using namespace boost will fail to compile (the tr1 stuff is merged into std in c++0x - and a lot of these old tr1 libraries are included indirectly by other stl headers!). As boost and the stl are fundamental libraries, they should, in my opinion, coexist in the global namespace. I think the boost implementations should move the std::tr1 implementation into the boost namespace if possible. This should solve all the problems. ----------------------------------------------- -- Best Regards, Sergey mailto:flex_ferrum@artberg.ru