CodeLiteとTDM-GCCコンパイラの最新バージョンがインストールされました。 C++ 11とC++ 14の両方をサポートしています。しかし、nullptr
を使ってプログラムを書くと、それでも私には'nullptr' was not declared in this scope
と伝えられます。C++ 11およびC++ 14でもnullptrが宣言されていません
私は、コンパイラによって受け入れられるためにnullptr
ために行うには他に何がありますか?
CodeLiteとTDM-GCCコンパイラの最新バージョンがインストールされました。 C++ 11とC++ 14の両方をサポートしています。しかし、nullptr
を使ってプログラムを書くと、それでも私には'nullptr' was not declared in this scope
と伝えられます。C++ 11およびC++ 14でもnullptrが宣言されていません
私は、コンパイラによって受け入れられるためにnullptr
ために行うには他に何がありますか?
プロジェクトでC++ 11を有効にする必要があります。表示されているダイアログでは、さまざまなオプションのためにコンパイラに送信される実際のスイッチを変更できます(これについては後で説明します)。
まず、プロジェクトにC++ 11を有効にするには、「ワークスペースビュー」(左ペイン)でプロジェクトフォルダを右クリックし、「設定」を選択します(メインメニューバーのWorkspace-> Open Activeプロジェクト設定...またはAlt-F7)。
設定リスト(ダイアログの左側)から「コンパイラ」を選択し、「C++コンパイラオプション」オプションの右にある楕円をクリックします。
「コンパイラオプション」ダイアログが表示されます。ここでは、「C++ 11の機能を有効にする」[-std=c++11
]をチェックできます。
ここで最初に述べたように、表示されているダイアログでは、コンパイラに送信されたスイッチを変更できます。スイッチ "-std=gnu++11
"を持つコンパイラを使用しているとします。このスイッチを[ビルド設定]ダイアログ(表示するもの)ダイアログに追加し、このビルドツールを使用するプロジェクトでこのスイッチをチェックすることができます。
これは非常に複雑ですが、IDEの作成者が聞いたことのないさまざまなビルドツールを使用できるようにする必要があります。
最後のオプション '-std = c99'は、他の' -std'オプションを上書きするかもしれません。しかし、もう一度、ちょっと推測します:) – Rakete1111
@ Rakete1111 'Delete' - >' Apply' - > 'OK'をクリックしてビルド設定を再度開くと' -std = c99'オプションが再度適用されます。したがって、私が知ることから、その機能を無効にする方法はありません –
FWIW、 '-std = c99'はCプログラムにのみ適用され、' -std = C++ 14'はC++プログラムにのみ適用されます。どちらか一方のみが適用されます。単一のgcc呼び出しで両方を指定すると、適用しないオプションに関する警告が表示されます(これらの警告がGUIを介して送信されるかどうかはわかりません)。コンパイラがプログラムがC言語であると判断した場合、明らかに 'nullptr'にアクセスできません。 – rici