Предоставляет ли C ++ 17 (std :: filesystem) те же коды ошибок, что и Boost.Filesystem - PullRequest
1 голос
/ 19 мая 2019

Я готовлю код с использованием Boost.Filesystem для (возможной) доступности std :: filesystem в C ++ 17 Xcode 10.x.Существует ли кроссплатформенный метод, позволяющий избежать трансляции между этими двумя библиотеками распространенных ошибок файловой системы, таких как:

no_such_file_or_directory (то же самое, что ENOENT)

Я хочубыть в состоянии плавно перейти к поддержке C ++ 17 std :: filesystem кросс-платформенным способом в MacOS, Windows и Linux.

(я видел, как другие авторы создавали свои собственные методы поиска по таблицам для pre-C)++ 17 (до std :: filesystem) компиляторов, но может ли она быть более совместимой, поскольку std :: filesystem основана на Boost.Filesystem?)

НЕКОТОРЫЕ ДОПОЛНИТЕЛЬНЫЕ МЫСЛИ:

Я вижу, чтоC ++ std :: error_condition - это CLASS, который отмечен как «независимый от платформы».boost :: system :: error_condition - аналогичный класс, который считается «универсальным».

Но большинство операций надстройки файловой системы возвращают boost :: system :: error_code.

В этой статье хорошо объясняется разногласие, которое я видел между error_code и error_condition для классов ошибок c ++ std.Я ожидаю, что это будет то же самое для повышения:

http://blog.think -async.com / 2010/04 / system-error-support-in-c0x-part-2.html

...