#include <string>
#include <iostream>
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
int main()
{
fs::path p("/usr/include/c++/../sys/*");
p = fs::canonical(p);
}
GCC 6.2.0 компилируется нормально, но ошибка во время выполнения говорит:Почему std :: experimental :: filesystem :: path не принимает подстановочные знаки типа «*»?
terminate called after throwing an instance of 'std::experimental::filesystem::v1::__cxx11::filesystem_error'
what(): filesystem error: cannot canonicalize: No such file or directory [/usr/include/c++/../sys/*] [/data/svn/yaoxinliu] Aborted
Почемуstd::experimental::filesystem::path
не принимает групповые символы, такие как*
?
Принципиально для дизайна, что путь соответствует одному файлу, а не произвольному набору файлов. –