VSC - standard języka c++17

0

Zacząłem używać Visual studio code do c++, posiadam kompilator g++ w wersji 8.1 , jednak gdy używa się składni c++17 VSC wyświetla błędy i nie chce się kompilować przez komendę
g++ nazwa.cpp, działa natomiast z g++ -Wall -Wextra -pedantic -Wshadow -std=c++17 -Ofast -o nazwa nazwa.cpp - jednak nie do końca rozumiem tej komendy i wolałbym, aby kompilator nie wyświetlał błędów, które tak na prawdę nie są błędami. Co mam zrobić, żeby vsc obsługiwał mi c++17 ? Tu przykładowy kod :

#include <array>
#include <iostream>
#include <string_view>
#include <tuple>
#include <type_traits>
 
namespace a::b::c
{
    inline constexpr std::string_view str{ "hello" };
}
 
template <class... T>
std::tuple<std::size_t, std::common_type_t<T...>> sum(T... args)
{
    return { sizeof...(T), (args + ...) };
}
 
int main()

    auto [iNumbers, iSum]{ sum(1, 2, 3) };
    std::cout << a::b::c::str << ' ' << iNumbers << ' ' << iSum << '\n';
 
    std::array arr{ 1, 2, 3 };
 
    std::cout << std::size(arr) << '\n';
 
    return 0;
}

Wyświetlają mi się takie błędy : namespace "std" has no member "string_view" itp.Zrzut ekranu 2021-04-25 203643.png

2

@4matey: Jak dobrze zauważyłeś -std=c++17 zmusza kompilator do użycia języka w wersji c++17 i jeśli kompilujesz kod z konsoli to dodawanie tego to chyba jedyne wyjście. (Naj)Lepszym sposobem jest użycie CMake'a.
string_view jest od C++17, tak samo jak fold expression.

1 użytkowników online, w tym zalogowanych: 0, gości: 1