Флаг версии g++ неправильно переключает версию C++C++

Программы на C++. Форум разработчиков
Anonymous
Флаг версии g++ неправильно переключает версию C++

Сообщение Anonymous »

Раньше я обычно использовал C++11 и для этого использовал флаг "-std=c++11" при ручной компиляции и создании файлов. Теперь я хочу использовать библиотеку файловой системы, для которой требуется C++17 или более поздняя версия.
Насколько я понимаю, это не должно быть проблемой, поскольку моя версия g++ — 11.4.0.
Я попытался изменить флаг в моем файле make на «-std=c++17», но это не сработало, так как я получил ошибку компиляции о том, что «файловая система не называет тип» и некоторые ссылки на пути к C++. 11. Затем я попробовал вручную и получил то же самое.
Вот команда терминала (wsl) и результат (начало) ниже:

Код: Выделить всё

g++ -std=c++17 fstesting.cc
fstesting.cc:3:17: ошибка: «файловая система» в пространстве имен «std» не имеет

назовите тип

3 | используя fs = std::filesystem;

| ^~~~~~~~~~

В файле, включенном из /usr/include/c++/11/bits/fs_fwd.h:37,

из /usr /include/c++/11/filesystem:44,

из fstesting.cc:1:

(это не отформатировано совершенно правильно, но суть вы поняли)
Что дает?

Подробнее здесь: https://stackoverflow.com/questions/784 ... -correctly

Вернуться в «C++»