[vcpkg] Fix build for mingw (#15504)

* fix build

* stop the templateness

none of the major three implementations have string::const_iterator = char const*
This commit is contained in:
nicole mazzuca 2021-01-08 10:46:54 -08:00 committed by GitHub
parent 2a42024b53
commit 36cd510119
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 11 deletions

View File

@ -48,20 +48,11 @@ namespace fs
inline path u8path(std::initializer_list<char> il) { return u8path(vcpkg::StringView{il.begin(), il.end()}); }
inline path u8path(const char* s) { return u8path(vcpkg::StringView{s, s + ::strlen(s)}); }
#if defined(_MSC_VER)
inline path u8path(std::string::const_iterator first, std::string::const_iterator last)
{
if (first == last)
{
return path{};
}
else
{
auto firstp = &*first;
return u8path(vcpkg::StringView{firstp, firstp + (last - first)});
}
auto firstp = &*first;
return u8path(vcpkg::StringView{firstp, firstp + (last - first)});
}
#endif
std::string u8string(const path& p);
std::string generic_u8string(const path& p);

View File

@ -104,6 +104,11 @@ namespace
fs::path fs::u8path(vcpkg::StringView s)
{
if (s.size() == 0)
{
return fs::path();
}
#if defined(_WIN32)
return fs::path(vcpkg::Strings::to_utf16(s));
#else