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

时间:2016-05-20 07:06:48

标签: c++ algorithm

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

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

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

为什么?

1 个答案:

答案 0 :(得分:6)

这不会编译为path::begin()path::end()会返回path::iterator,这是path::const_iterator的别名。

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