[vcpkg] Fix build for mingw
* fix build
* stop the templateness
none of the major three implementations have string::const_iterator = char const*
MODIFY
include/vcpkg/base/files.h
include/vcpkg/base/files.h
@@ -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)});
}
- }
-#endif
std::string u8string(const path& p);
std::string generic_u8string(const path& p);

MODIFY
src/vcpkg/base/files.cpp
src/vcpkg/base/files.cpp
@@ -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

[vcpkg] Fix build for mingw (#15504)

* fix build

* stop the templateness

none of the major three implementations have string::const_iterator = char const*