[choreonoid-users-ja 00124] Re: (OSX10.9)unknown type name 'shared_ptr'

東俊光 thigashi @ me.com
2014年 2月 7日 (金) 23:03:28 JST


産総研 中岡様,

お世話になります.東です.

失礼しました.
結果をご報告すべきでした.
中岡さんからご教示頂いた内容で,問題無く最後までビルドすることが出来,
choreonoidが動作するところまで確認できました.
ありがとうございます.

shared_ptrの前にboostを付けることで;
[  9%] Building CXX object src/Util/CMakeFiles/CnoidUtil.dir/VRMLParser.cpp.o
/Users/east/programming/choreonoid-1.4.0/src/Util/VRMLParser.cpp:374:9: error: 
      unknown type name 'shared_ptr'
        shared_ptr<EasyScanner> topScanner;
        ^
/Users/east/programming/choreonoid-1.4.0/src/Util/VRMLParser.cpp:374:19: error: 
      expected member name or ';' after declaration specifiers
        shared_ptr<EasyScanner> topScanner;
        ~~~~~~~~~~^
/Users/east/programming/choreonoid-1.4.0/src/Util/VRMLParser.cpp:380:33: error: 
      reference to 'shared_ptr' is ambiguous
        typedef map<VRMLProto*, shared_ptr<EasyScanner> > ProtoToEntityS...
にかんするコンパイルエラーは出なくなりました.

同様にmake_shared, ref, functionについても,boost前につけて
boost::make_shared, boost::ref, boost::functionと修正する
ことで,コンパイルエラーは出なくなりました.

助かりました.ありがとうございます.

また,LinkGroup.hのエラーメッセージについても;
> とりあえず、
> #include <vector> の後にでも、
> #include <string> を追加して試してみてください。
とすることでコンパイルエラーは出なくなりました.

shared_ptrがboostとstdで干渉しているために,using namespace boost
と記入しても名前解決が出来なかったわけですね.
C++11の設定を有効にしていなくてもstdの中に入っているとは,設定が
面倒になってしまうような気がします.(素人意見)

ご教示頂き,ありがとうございました.

P.S.
あと,もう一つ質問がありますので,別のサブジェクトにして質問させて
頂こうと思います.ご容赦下さい.
東.

------------------------------------------------
東  俊光
thigashi @ me.com
------------------------------------------------


-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://choreonoid.org/pipermail/choreonoid-users-ja/attachments/20140207/e87646dd/attachment-0001.html>


choreonoid-users-ja メーリングリストの案内