2017-02-09 12 views
1

Там было несколько вопросов о получении experimental/filesystem компилировать в последних версиях GCC и Clang: experimental::filesystem linker errorПочему я должен использовать -lstdC++ fs?

Но теперь filesystem был принят в поэтому нет больше необходимости experimental или -lstdc++fs флага, не так ли?

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

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

+5

Есть много комментариев Национального органа, поднимающих проблемы, связанные с файловой системой. Я думаю, что поставщики компиляторов просто осторожно ждут решения всех этих проблем. – metalfox

ответ

6

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^