gcc の typeinfo が返すアホな名前ですが、最終的には、std::map<std::string,std::string> によりマッピングを作成しておいて正しい名前に変換するという手法でクリアしました。これなら、どのコンパイラもクリアだと思いたい。
cmake の TRY_RUN の挙動ですが、コンパイラ・オプションは別途指定しなければならないようです。"-I /usr/local/include/boost_1_38" というような追加情報は、COMPILE_DEFINITIONS に指定しなければなりませんでした。windows 上では環境変数 include に boost も指定していたので windows 上のみ作動していたという訳でした。
追伸:
ツンデレのお題、俺、体育会系だし、わかんねーよ(Don't think, type. by BRUCE LEE 2nd)。
と思っていたのですが、typeid の返す名前をツンして、
- gcc : typename コンバータ使ってね
- msvc : 完璧ね
0 件のコメント:
コメントを投稿