個々の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. ブースト機能は、C++ 11ではC++ 11の生の文字列
- 3. Androidで最新のC++ 11機能NDK
- 4. 結合機能の結果は、C++ C++ 11では
- 5. DirectX 11の機能レベル
- 6. PHPチェック/リフレッシュ機能
- 7. C++ 11アトミック:なぜこのコードは機能しますか?
- 8. C++ 11グラム++エラー:削除された機能の使用
- 9. C++ 11に「In class member initialization」機能がありますか?
- 10. C++ 11はC11の新機能をサポートしていますか?
- 11. コンパイラ固有のプロキシに依存するC++ 11のライブラリ機能
- 12. すべてのC++ 11並行処理機能をサポートするC++コンパイラ?
- 13. gcc 4.4.7を使ってC++コードをC++ 11の機能でコンパイルする方法
- 14. オーバーフロープロパティがIE 11で機能しない
- 15. animateTransformがIE 11で機能しない
- 16. 適切な機能をチェック
- 17. AngularJSで機能しないすべての機能をチェック/チェック解除する
- 18. ファイルの終わりのチェックが機能しません(C++)
- 19. PHPのロケーション機能をチェックする$ _GET
- 20. チェック機能が動作しません
- 21. 生の関数ポインタに近代的なC++ 11機能から変換
- 22. c、C++、c#の機能テストツール
- 23. C++は機能
- 24. C++:機能は
- 25. C#の機能
- 26. 機能は、C++
- 27. Cスタックプッシュ機能
- 28. 機能 - C
- 29. C++フリースタンド機能
- 30. C - 機能
直感的な答えは、その機能を持つコードを記述してコンパイルすることです。 – iammilind
この質問を閉じる必要があるのはなぜですか? –
@Nordlöw:[この質問](http://stackoverflow.com/q/6095885/636019)の複製として2人が投票に参加しました。 – ildjarn