Почему я все еще должен использовать -lstdC++fs?

Там было несколько вопросов о получении experimental/filesystem скомпилировать в последних версиях GCC и Clang: экспериментальный:: ошибка компоновщика файловой системы

Но сейчас filesystem был принят в C++17, так что больше не нужно experimental или -lstdc++fs флаг, верно?

Неправильно я не могу даже #include <filesystem> на головной версии либо clang++ или же g++ когда я примеряю: http://melpon.org/wandbox

Есть ли еще какой-то другой аргумент, который мне нужен? -lstdc++fs просто дает мне experimental версия, как я могу включить официально принятую версию?

1 ответ

Решение

В стандартах C++ не указано, как именно вы должны вызывать свой компилятор. Я думаю, что это зависит от реализации, так что может возникнуть необходимость -lstdc++fs,

Обратите внимание, что C++17 официально еще не является стандартом, и реализации могут или не могут его реализовать. Даже когда C++17, наконец, станет стандартом, это никак не изменит реализацию. Он даже не определяет, какие флаги компоновщика реализация должна или не должна требовать. Это совершенно не связано.

То, как вы можете включить официально принятую версию после того, как C++17 станет стандартом, и ваша реализация начнет его поддерживать, полностью зависит от реализации. Возможно, нам просто придется подождать и посмотреть, как это получится.

Другие вопросы по тегам