Index: libcxx/include/filesystem =================================================================== --- libcxx/include/filesystem +++ libcxx/include/filesystem @@ -1362,39 +1362,39 @@ _LIBCPP_FUNC_VIS size_t hash_value(const path& __p) noexcept; -template +template _LIBCPP_INLINE_VISIBILITY _LIBCPP_DEPRECATED_WITH_CHAR8_T - typename enable_if<__is_pathable<_Source>::value, path>::type - u8path(const _Source& __s) { + typename enable_if<__is_pathable<_InputIt>::value, path>::type + u8path(_InputIt __f, _InputIt __l) { static_assert( #ifndef _LIBCPP_NO_HAS_CHAR8_T - is_same::__char_type, char8_t>::value || + is_same::__char_type, char8_t>::value || #endif - is_same::__char_type, char>::value, - "u8path(Source const&) requires Source have a character type of type " - "'char'" + is_same::__char_type, char>::value, + "u8path(Iter, Iter) requires Iter have a value_type of type 'char'" #ifndef _LIBCPP_NO_HAS_CHAR8_T " or 'char8_t'" #endif ); - return path(__s); + return path(__f, __l); } -template +template _LIBCPP_INLINE_VISIBILITY _LIBCPP_DEPRECATED_WITH_CHAR8_T - typename enable_if<__is_pathable<_InputIt>::value, path>::type - u8path(_InputIt __f, _InputIt __l) { + typename enable_if<__is_pathable<_Source>::value, path>::type + u8path(const _Source& __s) { static_assert( #ifndef _LIBCPP_NO_HAS_CHAR8_T - is_same::__char_type, char8_t>::value || + is_same::__char_type, char8_t>::value || #endif - is_same::__char_type, char>::value, - "u8path(Iter, Iter) requires Iter have a value_type of type 'char'" + is_same::__char_type, char>::value, + "u8path(Source const&) requires Source have a character type of type " + "'char'" #ifndef _LIBCPP_NO_HAS_CHAR8_T " or 'char8_t'" #endif ); - return path(__f, __l); + return path(__s); } class _LIBCPP_TYPE_VIS path::iterator {