C++ コンパイラ サポートを見ると、GCC 5.0+ で の時間指定されていないバージョンstd::shared_mutex
が利用できるようです。ただし、 を使用しgcc version 5.3.0 20151204 (Ubuntu 5.3.0-3ubuntu1~14.04)
てコンパイルしても-std=c++1z
、共有ミューテックスの単純な初期化は次のようになります。
error: ‘shared_mutex’ in namespace ‘std’ does not name a type
std::shared_mutex mutex_;
いいえ、私はすでに適切なヘッダーを含めています: #include <shared_mutex>
.
存在しないように見えるため、適切なヘッダーを見つけることができません。実際には、リンカは(C++14 標準のような)/usr/include/c++/5/shared_mutex
の実装のみを含むライブラリ locate at を使用します。std::shared_timed_mutex
にリポジトリを追加し、それらのビンを適切にセットアップするためにppa:ubuntu-toolchain-r/test
使用して、gcc-5 と g++-5 をインストールしました。update-alternatives
最新の C++17 標準を使用してコードを正しくコンパイルするためにできることはありますか? -std=c++1z
ばかげた質問かもしれませんが、既にサポートされているはずなのに、使い始めるのは時期尚早ですか? サポートされているからですよね?