Я использую новый современный C ++ 17 с API файловой системы.Я работаю в Windows с Visual Studio 2017.
Следующий код дает неожиданный результат:
#include <iostream>
#include <filesystem>
int main()
{
std::filesystem::path path(R"(D:\dir\file.cpp)");
for (auto& dir : path)
{
std::cout<<dir<<std::endl;
}
}
Результат:
"D:"
"\\"
"dir"
"file.cpp"
Почему было "\\ "print?
При проверке этого в GCC 9.1.0 (пожалуйста, измените '\' на '/' в переменной пути), результат:
"D:"
"dir"
"file.cpp"
Почему такое поведениеотличается?
Какой результат является правильным в соответствии со стандартом C ++ 17?