唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

clang++で<thread>や<chrono>を#includeしたら動かない

Ubuntuでclang++ 3.2を使っていたのですが、<chrono>をインクルードすると大量のエラーメッセージが出ました。
解決法をググっていたら以下のサイトが引っかかりました。

インクルードしているtype_traits、私の場合は/usr/include/c++/4.6/type_traitsを以下のように書き換えればいいようです。

   template<typename _Tp, typename _Up>
     struct common_type<_Tp, _Up>
-    { typedef decltype(true ? declval<_Tp>() : declval<_Up>()) type; };
+    { typedef typename decay<decltype(true ? declval<_Tp>() : declval<_Up>())>::type type; };

あるいはどこかにtype_traitsをコピーしてから書き換えて、-Iでインクルードパスを指定したほうがいいかもしれません。

clang++ hoge.cpp -std=c++11 -I インクルードパス