Что то они там намудрили.
В предыдущих версиях filesystem2
был path и wpath (который собственно basic_path)
который параметризовался либо std::string либо std::wstring соответственно
у которого
string_type был либо std::string либо std::wstring
А вот в filesystem3 они там чего такого в path намутили:
# ifdef BOOST_WINDOWS_API
typedef wchar_t value_type;
# else
typedef char value_type;
# endif
typedef std::basic_string<value_type> string_type; //<-- вот нафига? это теперь никак не совместимо с std::string/wstring (например в lambda выражениях)
при том что wpath по прежнему существует правда теперь вот такой:
# ifndef BOOST_FILESYSTEM_NO_DEPRECATED
typedef path wpath;
# endif
Бегло посмотрев хидера Я так понимаю что бы filesystem стал filesystem2 нужно менять макросы в boost_config.hpp и пересобирать библиотеку?