2016-05-31 10 views
-1

CodeLiteとTDM-GCCコンパイラの最新バージョンがインストールされました。 C++ 11とC++ 14の両方をサポートしています。しかし、nullptrを使ってプログラムを書くと、それでも私には'nullptr' was not declared in this scopeと伝えられます。C++ 11およびC++ 14でもnullptrが宣言されていません

enter image description here

私は、コンパイラによって受け入れられるためにnullptrために行うには他に何がありますか?

+11

最後のオプション '-std = c99'は、他の' -std'オプションを上書きするかもしれません。しかし、もう一度、ちょっと推測します:) – Rakete1111

+0

@ Rakete1111 'Delete' - >' Apply' - > 'OK'をクリックしてビルド設定を再度開くと' -std = c99'オプションが再度適用されます。したがって、私が知ることから、その機能を無効にする方法はありません –

+0

FWIW、 '-std = c99'はCプログラムにのみ適用され、' -std = C++ 14'はC++プログラムにのみ適用されます。どちらか一方のみが適用されます。単一のgcc呼び出しで両方を指定すると、適用しないオプションに関する警告が表示されます(これらの警告がGUIを介して送信されるかどうかはわかりません)。コンパイラがプログラムがC言語であると判断した場合、明らかに 'nullptr'にアクセスできません。 – rici

答えて

1

プロジェクトでC++ 11を有効にする必要があります。表示されているダイアログでは、さまざまなオプションのためにコンパイラに送信される実際のスイッチを変更できます(これについては後で説明します)。

まず、プロジェクトにC++ 11を有効にするには、「ワークスペースビュー」(左ペイン)でプロジェクトフォルダを右クリックし、「設定」を選択します(メインメニューバーのWorkspace-> Open Activeプロジェクト設定...またはAlt-F7)。

設定リスト(ダイアログの左側)から「コンパイラ」を選択し、「C++コンパイラオプション」オプションの右にある楕円をクリックします。

「コンパイラオプション」ダイアログが表示されます。ここでは、「C++ 11の機能を有効にする」[-std=c++11]をチェックできます。

ここで最初に述べたように、表示されているダイアログでは、コンパイラに送信されたスイッチを変更できます。スイッチ "-std=gnu++11"を持つコンパイラを使用しているとします。このスイッチを[ビルド設定]ダイアログ(表示するもの)ダイアログに追加し、このビルドツールを使用するプロジェクトでこのスイッチをチェックすることができます。

これは非常に複雑ですが、IDEの作成者が聞いたことのないさまざまなビルドツールを使用できるようにする必要があります。

+0

あああ、ありがとう! –

+0

@ n.m。を尊重して、プロジェクト設定ダイアログは、明白な場所(「ワークスペース」メニュー)ではなく、メインメニューからアクセスできます。 – iwbnwif

+0

「Enable C++ 11」を表すタグは、デフォルト値でもある* named * '-std = C++ 11'ですか?それは...特別です。 – Yakk

関連する問題