1

次のような新しいC++11タイプの特性をサポートするWindows用のC++11コンパイラはありますis_nothrow_move_constructibleか?

私はそれをサポートするコンテナを書き込もうとしていましたが、私のコンパイラ(VC ++ 2010、TDM MinGW32 GCC 4.6)のどれもそれをサポートしていないことがわかりました...

4

4 に答える 4

3

mingwについては、ここでSTLのディストリビューション(gcc 4.7.1)をお勧めします。ブースト1.50も付いています。

mingw-w64(元のmingwのフォーク)もあります。ここでrubenvbの個人用ビルドをお勧めします。Toolchains targetting Win3232ビットバージョンが必要な場合はに移動します。彼はまた、clangの個人ビルドも持っています(Windowsでのclangサポートはまだ非常にバグがあります。x64ビルドはリンカーエラーを報告するため、より良い診断などにのみ使用できます)

STLのディストリビューションは非常に優れていますが、mingw-w64は、win32 api(元のmingwで数え切れないほどの問題に遭遇しました)およびc ++11ヘッダー(<atomic>元のmingwではサポートされていないものなど)をはるかによくサポートしていることがわかりました。 。mingw-w64は、はるかに積極的に開発されており(32ビットおよび64ビットのバイナリを作成できます)、WindowsVista以降の新しい機能のサポートが含まれています。

mingw-w64の命名規則の詳細については、ここよくある質問を参照してください。

于 2012-08-17T07:40:04.473 に答える
2

Visual Studio C ++ 2012 Betaは、リファレンスによると、多くのC++11タイプの特性をサポートしています。Visual Studio C ++ 2012のドキュメントをご覧ください。ただし、is_nothrow_move_constructibleドキュメントが見つかりませんでした。ただし、サポートされているようです。

于 2012-08-17T07:26:13.330 に答える
1

GCC 4.7はis_nothrow_move_constructibleをサポートしており、MinGWDistroをインストールすることでWindowsで試すことができ ます

于 2012-08-17T07:43:34.263 に答える
0

答えではありませんが、GCC4.7のtype_traitsヘッダーのソースコードを見て何かを学びました。

そもそも必要あり ませんis_nothrow_xyz

noexcept演算子は、例外がスローされたかどうかを通知します。
したがって、これらの特定のタイプの特性については、代わりにそれを使用できます。

(または少なくとも理論的には。コンパイラがそれを実装するかどうかは別の問題です。)

于 2012-08-17T07:46:23.493 に答える