この1行をclang+libc ++(C ++ 11モード)でコンパイルしようとすると:
#include <boost/thread.hpp>
clangは次のエラーを出します:
test.cpp:1からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/thread.hpp:13からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/thread/thread.hpp:17からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/thread/pthread/thread_data.hpp:11からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/thread/locks.hpp:18からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/chrono/time_point.hpp:33からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/chrono/duration.hpp:353:49:エラー:
constexpr関数が定数式を生成することはありません
static BOOST_CHRONO_LIB_CONSTEXPR float lower()..。
^
/Users/yongwei/Programming/boost_1_52_0/boost/chrono/duration.hpp:355:21:注:
非constexpr関数'max'は定数式では使用できません
return-(std :: neuro_limits :: max)();
^
/usr/bin/../lib/c++/v1/limits:443:43:注:ここで宣言されています
_LIBCPP_INLINE_VISIBILITY static type max()_NOEXCEPT{return..。
^
test.cpp:1からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/thread.hpp:13からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/thread/thread.hpp:17からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/thread/pthread/thread_data.hpp:11からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/thread/locks.hpp:18からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/chrono/time_point.hpp:33からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/chrono/duration.hpp:361:50:エラー:
constexpr関数が定数式を生成することはありません
static BOOST_CHRONO_LIB_CONSTEXPR double lower()..。
^
/Users/yongwei/Programming/boost_1_52_0/boost/chrono/duration.hpp:363:21:注:
非constexpr関数'max'は定数式では使用できません
return-(std :: neuro_limits :: max)();
^
/usr/bin/../lib/c++/v1/limits:443:43:注:ここで宣言されています
_LIBCPP_INLINE_VISIBILITY static type max()_NOEXCEPT{return..。
^
test.cpp:1からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/thread.hpp:13からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/thread/thread.hpp:17からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/thread/pthread/thread_data.hpp:11からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/thread/locks.hpp:18からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/chrono/time_point.hpp:33からインクルードされたファイル:
/Users/yongwei/Programming/boost_1_52_0/boost/chrono/duration.hpp:369:55:エラー:
constexpr関数が定数式を生成することはありません
static BOOST_CHRONO_LIB_CONSTEXPR long double lower()..。
^
/Users/yongwei/Programming/boost_1_52_0/boost/chrono/duration.hpp:371:21:注:
非constexpr関数'max'は定数式では使用できません
return-(std :: neuro_limits :: max)();
^
/usr/bin/../lib/c++/v1/limits:443:43:注:ここで宣言されています
_LIBCPP_INLINE_VISIBILITY static type max()_NOEXCEPT{return..。
^
3つのエラーが生成されました。
C ++ 11ではこれらの関数がである必要があるため、これはlibc++のバグのように見えますconstexpr。
誰もが同じ問題に遭遇しました、そしてあなたは同意できますか?修正について知っていますか?
私のclangバージョンは次のとおりです。
Apple clangバージョン4.1(tags / Apple / clang-421.11.66)(LLVM 3.1svnに基づく) ターゲット:x86_64-apple-darwin11.4.2 スレッドモデル:posix