質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

解決済

VscodeでC++のバージョンをc++14からc++20に変更したい

yuki_nam
yuki_nam

総合スコア20

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

1回答

0評価

0クリップ

468閲覧

投稿2022/06/10 09:36

編集2022/06/11 01:05

前提

Vscodeでc++のバージョンを変更したいです。下記のコードでc++のバージョンを確認したところ自分の環境ではc++のバージョンはc++14でした。
また、std::gcdやstd::lcmも認識されていないことを確認したため間違いないです。私は普段Run codeを用いてc++のコードのコンパイルを行っています。

実現したいこと

毎回コンパイルする際にコマンドをいちいち打たずに今まで通りRun codeを用いて出来ればc++20で実行できるようにしたいです。

c++のバージョンを確認したコード

C++

#include<bits/stdc++.h> #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define repi(i,a,b) for(int i = a; i <= (int)(b); i++) typedef long long ll; using namespace std; int main(){ long version = __cplusplus; std::cout << "C++ Version : " << version << "\n"; return 0; }

結果

C++ Version : 201402

上は調べたところc++14を表していました。c++20である場合、202002と出るようです。

試したこと

様々なサイトを調べて色々c_cpp_properties.jsonをいじったりしましたがエラーが出てしまったりしてしまいバージョン変更をすることができませんでした。

c_cpp_properties.json

{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "windowsSdkVersion": "10.0.19041.0", "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe", "intelliSenseMode": "windows-msvc-x64", "cppStandard": "c++20", "cStandard": "c17" } ], "version": 4 }

settings.json

{ "latex-workshop.latex.recipes": [ { "name": "make_ptex2pdf", "tools": [ "ptex2pdf", ] } ], "latex-workshop.latex.tools": [ { "name": "ptex2pdf", "command": "ptex2pdf", "args": [ "-interaction=nonstopmode", "-l", "-ot", "-kanji=utf8 -synctex=1", "%DOC%" ] } ], "latex-workshop.view.pdf.viewer": "tab", "workbench.statusBar.visible": true, "editor.renderControlCharacters": true, "files.autoGuessEncoding": true, "code-runner.runInTerminal": true, "workbench.colorCustomizations": { }, "terminal.integrated.enableMultiLinePasteWarning": false, "remote.SSH.remotePlatform": { "blue31.ced.cei.uec.ac.jp": "linux", "sol": "linux" }, "csharp.suppressDotnetInstallWarning": true, "C_Cpp.default.cppStandard": "c++17", "C_Cpp.default.cStandard": "c17", "code-runner.clearPreviousOutput": true, "code-runner.executorMapByGlob": { "pom.xml": "cd $dir && mvn clean package" }, "code-runner.executorMapByFileExtension": { ".vb": "cd $dir && vbc /nologo $fileName && $dir$fileNameWithoutExt", ".vbs": "cscript //Nologo", ".scala": "scala", ".jl": "julia", ".cr": "crystal", ".ml": "ocaml", ".exs": "elixir", ".hx": "haxe --cwd $dirWithoutTrailingSlash --run $fileNameWithoutExt", ".rkt": "racket", ".scm": "csi -script", ".ahk": "autohotkey", ".au3": "autoit3", ".kt": "cd $dir && kotlinc $fileName -include-runtime -d $fileNameWithoutExt.jar && java -jar $fileNameWithoutExt.jar", ".kts": "kotlinc -script", ".dart": "dart", ".pas": "cd $dir && fpc $fileName && $dir$fileNameWithoutExt", ".pp": "cd $dir && fpc $fileName && $dir$fileNameWithoutExt", ".d": "cd $dir && dmd $fileName && $dir$fileNameWithoutExt", ".hs": "runhaskell", ".nim": "nim compile --verbosity:0 --hints:off --run", ".csproj": "dotnet run --project", ".fsproj": "dotnet run --project", ".lisp": "sbcl --script", ".kit": "kitc --run", ".v": "v run", ".vsh": "v run", ".sass": "sass --style expanded", ".cu": "cd $dir && nvcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", ".ring": "ring" }, "code-runner.executorMap": { "javascript": "node", "java": "cd $dir && javac $fileName && java $fileNameWithoutExt", "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "objective-c": "cd $dir && gcc -framework Cocoa $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "php": "php", "python": "python -u", "perl": "perl", "perl6": "perl6", "ruby": "ruby", "go": "go run", "lua": "lua", "groovy": "groovy", "powershell": "powershell -ExecutionPolicy ByPass -File", "bat": "cmd /c", "shellscript": "bash", "fsharp": "fsi", "csharp": "scriptcs", "vbscript": "cscript //Nologo", "typescript": "ts-node", "coffeescript": "coffee", "scala": "scala", "swift": "swift", "julia": "julia", "crystal": "crystal", "ocaml": "ocaml", "r": "Rscript", "applescript": "osascript", "clojure": "lein exec", "haxe": "haxe --cwd $dirWithoutTrailingSlash --run $fileNameWithoutExt", "rust": "cd $dir && rustc $fileName && $dir$fileNameWithoutExt", "racket": "racket", "scheme": "csi -script", "ahk": "autohotkey", "autoit": "autoit3", "dart": "dart", "pascal": "cd $dir && fpc $fileName && $dir$fileNameWithoutExt", "d": "cd $dir && dmd $fileName && $dir$fileNameWithoutExt", "haskell": "runhaskell", "nim": "nim compile --verbosity:0 --hints:off --run", "lisp": "sbcl --script", "kit": "kitc --run", "v": "v run", "sass": "sass --style expanded", "scss": "scss --style expanded", "less": "cd $dir && lessc $fileName $fileNameWithoutExt.css", "FortranFreeForm": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "fortran-modern": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "fortran_fixed-form": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "fortran": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt" }, }

補足

何か更に必要な情報がございましたらお教え下さると幸いです

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

yuki_nam

2022/06/10 10:02

つまりコンパイルをrun codeに任している時点でバージョンの変更は不可能ということでしょうか?
Zuishin

2022/06/10 10:10 編集

なぜリンク先を読まない人が増えたんだろう。
yuki_nam

2022/06/10 10:13

いいえ、まずすぐに読みましたが私みたいな初学者にはどう変えればよいのか理解に時間がかかるんですよ。読んでいないみたいな浅はかな返信をしてしまいすみませんでした。
yuki_nam

2022/06/10 10:14

リンク先を読んでいますが正直visual studioの方の操作が慣れないのもあり中々難しいです。
Bull

2022/06/10 10:43

ソースコードを見ると gcc (g++) でコンパイルしているようですが、開発環境 (OSとコンパイラ) はなんでしょうか? Run Code (Code Runner) でコンパイル・実行しているのであれば、"settings.json" の内容も補足して頂けませんか? 質問は修正できますのでここに書かないで、質問に追記して下さい。
yuki_nam

2022/06/10 10:50 編集

申し訳ありません。ただいま追記いたします。使用OSはWindowsです。settings.jsonの内容は質問ページに追記いたします。
yuki_nam

2022/06/10 10:47

ただいまVisual studioの方でのC++のバージョンを上記のリンクに従って変更しvisual studio上で同じくc++のバージョンを確認するコードを実行したところc++20になっていることを確認しました。しかしvscodeの方は変わらずc++14のままでした。
Bull

2022/06/10 11:58

VScode と Visual Studio は全くの別物ですので、Visual Studio のほうを変更しても、VScode には反映しませんね。 VScode では g++ でコンパイルしているのですよね。 "settings.json" の "code-runner.executorMap" の "cpp" を次のように変更してみて下さい。 "cpp": "cd $dir && g++ $fileName -std=c++20 -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
yuki_nam

2022/06/10 12:02

返信ありがとうございます。ただいま家を出てしまったため帰りましたら試してみて再度返信致します。ありがとうございます。
yuki_nam

2022/06/10 15:52

g++.exe: error: unrecognized command line option '-std=c++20'; did you mean '-std=c++2a'? このようなエラーが出てしまいコンパイルできませんでした。
yuki_nam

2022/06/10 15:54

ちなみにc++20のところをc++17にしたところc++のバージョンがc++17に変わりました。エラーなどは出ませんでした。
yuki_nam

2022/06/10 16:04

20のところを2aに変えたらc++20に変更することができました。皆様ご協力ありがとうございました。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。