2011-10-19 7 views
8

私のプロジェクトで安全に使用できるように十分に成熟したものは何ですか?私はほとんどGCCについて話していますが、ほとんど私はほとんどVisual Studioが必要です。数ヶ月後に書き直しが必要な機能をコードに含めることは明らかに望ましくありません。私はこの最初の段階でこれらの機能を使用する必要がありますか?私たちが主に何をしているのかは、c++11 dependentではありません。私たちはすべてのことと古い学校の方法のすべてのことを行うこともできます。この早い段階でC++ 11の機能を使い始めるべきですか?安定したC++ 11の機能を安全に使用することができます

+4

どのGCCバージョンをターゲットにしていますか?このコードはどこで実行されますか、ターゲットシステムは何を使用していますか?このページはGCCバージョンで機能が利用可能になった時点を示しています:http://gcc.gnu.org/projects/cxx0x htmlの – birryree

+0

私はWindowsでMinGWを使用しています。そのバージョンを確認しました。 Linuxでは4.3.2を使っていますが、次回の作業にはどこに配置されるのでしょうか。 –

+0

は変更可能な機能ですか?または彼らは安定していますか? –

答えて

8

最終的にC++ 11標準が完成して公開されるため、これ以上の変更はありません。実装はやや遅れており、若干古いバージョンのC++ 0xを実装しているかもしれませんが、更新されたときにはそれほど大きな違いはないでしょう。

C++ 11は完全に後方互換性がないため、まずはC++ 11との互換性を考慮して開発を開始してください。 GCCには、これを助けるための警告フラグ "-WC++ 0x-compat"があります。非互換性はかなり小さいですが、これは問題となるものを生成するはずです。

大きな互換性がないということは、libstdC++のABIがC++ 11への移行に伴って変更されることです。そのため、あなたもそれに対処できることを確認する必要があります。

移動しても安全だと分かったら、C++ 11モードでビルドを開始してください。新しいコードを書いたり古いコードを変更したりするときに、C++ 11の機能が役に立つと思われるものを徐々に採用することができます。また、古い例外仕様などの廃止予定機能の使用を確認し、新しい仕様に置き換えることも考えてください。

新しいものがたくさんあるので、オンラインで入手することができれば標準を見てください。私が直接使ってみたいと思う本当に興味深いものは、図書館にあることがわかります。残念ながら、現在の実装がまだまだ遅れているようです。

0

あなたが訪問したいと思うことがあります。

http://gcc.gnu.org/projects/cxx0x.html

このリンクは別のGCCのバージョンでC++ 0xのサポートを提供します。

ここでは、C++ 11を使用することをお勧めします(GCCのコマンドラインに-std = C++ 0xを追加するだけです)。あなたが運が良かったら、あなたのコードで何も変わらないでしょう。 C++ 11の機能を使用しなくても、rvalue参照や移動セマンティクスに起因するパフォーマンスの向上のメリットはあります。

関連する問題