個々のC++ 0x/C++ 11言語機能の存在を確認するにはどうすればよいですか?私はClangがこれに対して素晴らしいシステムを持っていることを知っています。 GCC、Visual Studio、Boostはどうですか?私はそれを行う1つの方法は、コンパイラのバージョンを検出し、そのバージョンで導入された機能に関連付けることだと思います。しかし、それは面倒です。誰かがすでにそれをしていますか?C++ 11機能チェック
答えて
boost configには、C++ 11の機能の一部を確認するスクリプトが付属しています。
各機能のマクロを含む設定ファイルを生成します。
私はあなたが何かを書くことを意図したと思う*参照してください:*。とにかく、はい、Boost.Configがおそらく最良の賭けです。 Boostの人たちはすでに情報を追跡しているので、コンパイラのチームが宣伝するのに十分安定しているかどうかを正確に知っているか、Clangが新しいチェックフラグを要求しているかを知る必要はありません。 –
実際には、それはドラフト・アンサーから残ったものでした。私はそれを削除します。ありがとう。 – mirk
あなたのビルドツールでこれを手助けすることができます。
CMakeにはtry_compile
コマンドがあります。このコマンドを使用すると、コードサンプルがコンパイルされ、コンパイル結果に基づいて変数が設定されるかどうかをテストできます。
現時点では、私はちょうどauto
のようなより一般的にサポートされている機能を使用しています。
多くの場合、Boostを使用して不足しているライブラリの機能を置き換えることができます。これは、コンパイラやライブラリが更新され、バグが修正されてから数年間は最適なオプションです。
GCCのためのC++ 11機能の互換性リストはここにある:http://gcc.gnu.org/projects/cxx0x.html
注意警告:
重要:C++ 11のためのGCCのサポートはまだ実験的なものです。一部の機能は初期の提案に基づいて実装されており、最終的なC++ 11標準に一致するように更新されたときに下位互換性を維持する試みは行われません。
- 1. C++ 11結合ソート機能
- 2. Androidで最新のC++ 11機能NDK
- 3. 結合機能の結果は、C++ C++ 11では
- 4. DirectX 11の機能レベル
- 5. PHPチェック/リフレッシュ機能
- 6. C++ 11グラム++エラー:削除された機能の使用
- 7. C++ 11はC11の新機能をサポートしていますか?
- 8. コンパイラ固有のプロキシに依存するC++ 11のライブラリ機能
- 9. C++ 11アトミック:なぜこのコードは機能しますか?
- 10. C++ 11に「In class member initialization」機能がありますか?
- 11. すべてのC++ 11並行処理機能をサポートするC++コンパイラ?
- 12. C#の機能
- 13. C++ハッシュチェーン機能
- 14. C++機能:
- 15. 機能は、C++
- 16. c、C++、c#の機能テストツール
- 17. IP予約アドレスのチェックの機能
- 18. 擬似コードレビュー - 機能依存性チェック
- 19. Firefox拡張機能のインストール前のチェック
- 20. 最大長チェックが機能しない
- 21. デザイン室予約可否のチェック機能
- 22. DNSサーバをチェックする機能
- 23. C++ 11ファイルシステム(VS2012)
- 24. C++ 11オペレーター ""
- 25. ブースト:: C++ 11
- 26. C++ 11ファイルストリーム
- 27. vxworksのC++ 11
- 28. C++ 11 std :: array
- 29. はC++ 11
- 30. C++ 11バージョン
直感的な答えは、その機能を持つコードを記述してコンパイルすることです。 – iammilind
この質問を閉じる必要があるのはなぜですか? –
@Nordlöw:[この質問](http://stackoverflow.com/q/6095885/636019)の複製として2人が投票に参加しました。 – ildjarn