shared_ptr
STLを多用する C++ コードがあります。一般的なヘッダーは言う
#include<boost/shared_ptr.hpp>
using boost::shared_ptr; // for shared_ptr
using namespace std; // for STL
gcc 4.6 with を使用して、言語機能を利用するために c++0x に切り替えたいと思いました-std=c++0x
。ただし、現在もあり、未指定( vs )std::shared_ptr
のあいまいさにつながります。shared_ptr
boost::shared_ptr
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 を使用しないこと以外)、また- ifは最終的に;
boost::shared_ptr
の単なるエイリアスになります。std::shared_ptr
それは私の問題を自動的に解決します。
ありがとう!