«Как мне обойти эту проблему» - установив новый компилятор / стандартную библиотеку.Или не используя std::filesystem
.
Например, в RedHat и CentOS вы можете установить devtoolset-8 , чтобы получить доступ к более новому (и поддерживаемому) компилятору, чем в базовой системе,Другие дистрибутивы Linux могут имеют аналогичные параметры.
Вы также можете скомпилировать более новый компилятор + std lib из исходного кода.Само по себе это не так уж сложно, но вы должны быть осторожны, чтобы затем отправлять новые библиотеки.А тестирование совместимости с базовыми библиотеками дистрибутивов и т. Д. на вас .
Вы также можете, согласно ответу @ VTT, использовать условную компиляцию для возврата к std::experimental::filesystem
, если это весь ваш набор инструментовподдерживает, и вы в порядке с этим.
Если вы не хотите менять компилятор, и использование std::experimental::filesystem
не подходит (или ваш компилятор / стандартная библиотека даже не поддерживает это), тогда ваш единственный вариантиспользовать собственные функции ОС.