Подтвердить что ты не робот

Почему я не могу использовать <экспериментальную/файловую систему> с g++ 4.9.2?

Я пытаюсь использовать файловую систему . У меня -std=c++11 -std=c++1y в моем CMakeLists.txt. Версия GCC 4.9.2. Однако у меня есть ошибка:

/home/loom/MyProject/src/main.cpp:5:35: fatal error: experimental/filesystem: No such file or directory
 #include <experimental/filesystem>
                                   ^
compilation terminated.

Каков правильный способ использования std::experimental::filesystem?

4b9b3361

Ответ 1

Если мы посмотрим на статус libstdС++, мы видим, что у них есть поддержка файловой системы TS:

Бумага | Название | Статус

........

N4100 | Файловая система | У

но он говорит:

Эта страница описывает поддержку С++ 14 и библиотеки TS в магистральном GCC SVN, а не в какой-либо конкретной версии.

и попробовав это на Wandbox, похоже, что эта библиотека доступна только в последней ветке развития 6.0, и я могу не находите более подробной информации.

Обновить

Обновление от Джонатана Вакли:

Он также теперь доступен в ветке gcc-5 в Subversion и будет включен в выпуск GCC 5.3 позднее в этом году.

Также, соответственно, Jonathan Wakely ответьте здесь, нам нужно скомпилировать с помощью -lstdc++fs. Это описано в разделе ссылки gcc-документов:

GCC 5.3 включает в себя реализацию библиотеки файловой системы, определенной технической спецификацией ISO/IEC TS 18822: 2015. Поскольку это экспериментальное расширение библиотеки, а не часть стандарта С++, оно реализовано в отдельной библиотеке libstdС++ fs.a, и для нее нет разделяемой библиотеки. Чтобы использовать библиотеку, вы должны включить и связать с -lstdС++ fs. Реализация библиотеки неполна на платформах, отличных от POSIX, особенно поддержка Windows является рудиментарной.

Из-за экспериментального характера библиотеки Filesystem обычные гарантии стабильности и обратной совместимости ABI к нему не применяются. Нет никакой гарантии, что компоненты в любом заголовке будут оставаться совместимыми между различными выпусками GCC.

Также см. Таблица 3.1. Параметры командной строки С++.