Верно ли, что std :: filesystem :: operator == () возвращает false при сравнении двух путей un c с разными разделителями пути? - PullRequest
2 голосов
/ 27 февраля 2020

Я только что упал из-за следующего поведения std::filesystem::path компиляции с Visual Studio 16.0.0, и мне интересно, если это правильно.

#include <filesystem>

int main()
{
    std::filesystem::path absPath1("c:\\foo\\bar");
    std::filesystem::path absPath2("c:/foo/bar");

    bool absPathsAreEqual = absPath1 == absPath2; // absPathsAreEqual is true as expected.

    std::filesystem::path uncPath1("\\\\foo\\bar");
    std::filesystem::path uncPath2("//foo/bar");

    bool uncPathsAreEqual = uncPath1 == uncPath2; // uncPathsAreEqual is false which is a surprise for me.
}

Я не эксперт по пути, поэтому я не уверен, если это имеет смысл, что пути не равны во втором случае. Так это правильное поведение?

...