Почему я все еще должен использовать -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 станет стандартом, и ваша реализация начнет его поддерживать, полностью зависит от реализации. Возможно, нам просто придется подождать и посмотреть, как это получится.