====== Programming - Visual Studio - Configure Visual Studio ======
Within .vscode,
Add some more compiler arguments (also called flags) to tasks.json.
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-pthread",
"-g",
//"${file}",
"${workspaceFolder}/*.cpp",
"-o",
"${fileDirname}/${fileBasenameNoExtension}",
"-Wall",
"-Wextra",
"-Wconversion",
"-Wsign-conversion",
"-Wshadow",
"-Wpedantic",
"-std=c++23"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
**NOTE:**
* The arguments **-Wall**, **-Wextra**, **-Wconversion**, **-Wsign-conversion**, and **-Wshadow** will instruct the compiler to warn us about many different types of common mistakes.
* VS Code will then display these warnings right in the editor.
* This is an incredibly useful feature, which will automatically detect and help prevent potential bugs in our code.
* Never develop any C or C++ program without turning on all of these warning flags!
* In addition, **-Wpedantic** and **-std=c23** will instruct GCC to comply with the ISO C23 standard, the most recent standard, which will ensure that our program is maximally portable and can be compiled on other standards-complying compilers without too much hassle.
* On Windows only, we should add the flag **-D__USE_MINGW_ANSI_STDIO=1**, which will ensure that printing to the terminal follows the C standard.
----
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++ - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++ build active file",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
**NOTE:** The string **${workspaceFolder}** will automatically be replaced with the current workspace folder, so this will configure debugging sessions so that your program opens files from that folder.