C++为什么反转路径是非法的?

iou*_*vxz 1 c++ algorithm

#include <algorithm>
#include <filesystem>
int main()
{
    std::experimental::filesystem::path str("fffff/aaaa/.");    
    std::reverse(str.begin(),str.end());
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用vs2015,上面的代码不能编译,但我仍然可以反转一个字符串.

#include <algorithm>
#include <filesystem>
int main()
{
    std::string str("fffff/aaaa/.");    
    std::reverse(str.begin(),str.end());
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么?

P.G*_*.G. 6

这不会编译为path::begin()path::end()返回path::iterator哪个是别名path::const_iterator.

请参见http://en.cppreference.com/w/cpp/experimental/fs/path