前提・実現したいこと
g++でC++17を言語標準にしたいのですが、デフォルトでのコンパイルがC++14になってしまっています
デフォルトでコンパイルしたときC++17になるようにしたいです
使用したコード
以下のコードを用いC++のバージョンを確認しました
C++
1//sample.cpp 2#include<iostream> 3 4int main() { 5 if (__cplusplus == 201703L) std::cout << "C++17\n"; 6 else if (__cplusplus == 201402L) std::cout << "C++14\n"; 7 else if (__cplusplus == 201103L) std::cout << "C++11\n"; 8 else if (__cplusplus == 199711L) std::cout << "C++98\n"; 9 else std::cout << "pre-standard C++\n"; 10}
##結果
cmd
1g++ sample.cpp
とすると出力はC++14
cmd
1g++ -std=c++1z sample.cpp
とすると出力はC++17
です
VSCodeでのビルドもデフォルトに依存するのでC++14
になってしまいます
補足情報
gcc (MinGW.org GCC Build-2) 9.2.0
g++ (MinGW.org GCC Build-2) 9.2.0
>VSCodeでのビルドもデフォルトに依存する〜
VSCodeの拡張機能(cpptools)のC_Cpp › Default: Cpp Standardはどうなっていますか?
・・・Windowsは。aliasが使えないのが辛いですね・・・
g++ なら -std=c++11 のようにできたはず…
"デフォルトでコンパイルしたとき"と言っているので-std=で指定するのではないと思いますが?
>VSCodeの拡張機能(cpptools)のC_Cpp › Default: Cpp Standardはどうなっていますか?
VSCodeの方の言語標準はC++20になっていました
一応C++17にしましたが結果は同じです
コンパイラをGNUにしているので、g++の方のデフォルトを直接変えないとC++14でビルドされてしまいます...
仕方ないので今はコマンドプロンプトのほうで`-std=c++1z`を付けながらコンパイルをしています、まだ初心者で高度な内容ではないのでC++14でも大した影響はないものの、できれば新しいものを使いたいので...
回答1件
あなたの回答
tips
プレビュー