У меня есть код на C ++, который интенсивно использует shared_ptr
и STL. В общем заголовке говорится
#include<boost/shared_ptr.hpp>
using boost::shared_ptr; // for shared_ptr
using namespace std; // for STL
, что я хотел перейти на c ++ 0x сейчас, чтобы использовать возможности языка, используя gcc 4.6 с -std = c ++ 0x
. Однако теперь существует std :: shared_ptr
, что приводит к неоднозначности для неопределенного shared_ptr
( boost :: shared_ptr
vs std :: shared_ptr
]).
При переключении на std :: shared_ptr
вместо этого, например,
#include<memory>
using namespace std; // for STL; also imports std::shared_ptr
тогда у меня возникают проблемы с boost :: python
, который работает с ] только boost :: shared_ptr
(по крайней мере, без дальнейшей возни):
/usr/include/boost/python/object/make_ptr_instance.hpp:30:52: error: no matching function for call to 'get_pointer(const std::shared_ptr<Cell>&)'
Поэтому мой вопрос
boost :: shared_ptr
и std :: shared_ptr
(кроме того, что пока не используется c ++ 0x), а также boost :: shared_ptr
в конечном итоге будет просто псевдонимом для std: : shared_ptr
; это решит мою проблему автоматически. Спасибо!