4

unique_ptrC++ の割り当てで使用する必要があります。

新しいコンパイラ TDM-GCC-4.7.1 をダウンロードしてインストールしました。次に、GNU GCC Compiler のディレクトリを option: のインストール パスに変更しましたSetting->Compiler...->Toolchain Executable

しかし、うまくいきません。を定義すると、unique_ptr. エラーが発生します。"unique pointer is not a command of 'std' "

スマート ポインターを使用する理由は、強力な例外安全性を提供することです。これは、この割り当ての要件でもあります。C++11 のこの新機能を使用する必要があるだけです...さらに、使用する OS は Window 7 です。

ありがとう!

4

4 に答える 4

5

CodeBlocks では、プロジェクト コンパイラ設定またはグローバル コンパイラ設定のいずれかで C++11 モードを設定できます。より頻繁に使用する可能性があるため、グローバルに変更する方法は次のとおりです。

[設定] -> [コンパイラ] -> ([コンパイラ フラグ] にオプションのリストがあるはずです) -> [g++ を C++11 ISO C++ 言語標準 [-std=c++11] に準拠させる] を選択します。

単一のプロジェクトで変更する方法は次のとおりです。

プロジェクトに移動->ビルドオプション->(コンパイラフラグにオプションのリストがあるはずです)->「g++をC++11 ISO C++言語標準[-std=c++11]に準拠させる」を選択します

于 2013-06-20T00:22:50.137 に答える
5
  1. 最新の tdm-gcc http://tdm-gcc.tdragon.netをダウンロードします。
  2. 設定 -> コンパイラ、選択したコンパイラ [GNU GCC Compiler] 新しい構成をコピーして作成 [GNU GCC Compiler 4.9.2]
  3. 詳細設定 詳細構成イメージ
  4. クリックして、新しいコンパイラ構成をデフォルトとして設定しますSet as default
  5. コンパイラの設定を に変更しますhaving c++11

PS: code::blocks バージョン 13.12、tdm-gcc 4.9.2

于 2014-12-29T12:22:46.487 に答える
2
  1. 覚えておいてください #include <memory>
  2. フラグを追加-std=gnu++0xまたは-std=c++11コンパイルします...どちらでも機能します
于 2013-06-19T22:37:09.273 に答える