1313#include < __algorithm/unwrap_iter.h>
1414#include < __config>
1515#include < __filesystem/path.h>
16+
1617#include < __locale>
1718#include < string>
1819
2425
2526_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
2627
28+ # if !defined(_LIBCPP_WIN32API) || _LIBCPP_HAS_LOCALIZATION
2729template <class _InputIt , __enable_if_t <__is_pathable<_InputIt>::value, int > = 0 >
2830_LIBCPP_HIDE_FROM_ABI _LIBCPP_DEPRECATED_WITH_CHAR8_T path u8path (_InputIt __f, _InputIt __l) {
2931 static_assert (
30- # if _LIBCPP_HAS_CHAR8_T
32+ # if _LIBCPP_HAS_CHAR8_T
3133 is_same<typename __is_pathable<_InputIt>::__char_type, char8_t >::value ||
32- # endif
34+ # endif
3335 is_same<typename __is_pathable<_InputIt>::__char_type, char >::value,
3436 " u8path(Iter, Iter) requires Iter have a value_type of type 'char'"
3537 " or 'char8_t'" );
36- # if defined(_LIBCPP_WIN32API)
38+ # if defined(_LIBCPP_WIN32API)
3739 string __tmp (__f, __l);
3840 using _CVT = __widen_from_utf8<sizeof (wchar_t ) * __CHAR_BIT__>;
3941 std::wstring __w;
4042 __w.reserve (__tmp.size ());
4143 _CVT ()(back_inserter (__w), __tmp.data (), __tmp.data () + __tmp.size ());
4244 return path (__w);
43- # else
45+ # else
4446 return path (__f, __l);
45- # endif /* !_LIBCPP_WIN32API */
47+ # endif /* !_LIBCPP_WIN32API */
4648}
49+ # endif /* !_LIBCPP_WIN32API || _LIBCPP_HAS_LOCALIZATION */
4750
48- # if defined(_LIBCPP_WIN32API)
51+ # if defined(_LIBCPP_WIN32API) && _LIBCPP_HAS_LOCALIZATION
4952template <class _InputIt , __enable_if_t <__is_pathable<_InputIt>::value, int > = 0 >
5053_LIBCPP_HIDE_FROM_ABI _LIBCPP_DEPRECATED_WITH_CHAR8_T path u8path (_InputIt __f, _NullSentinel) {
5154 static_assert (
@@ -65,7 +68,7 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_DEPRECATED_WITH_CHAR8_T path u8path(_InputIt __f,
6568 _CVT ()(back_inserter (__w), __tmp.data (), __tmp.data () + __tmp.size ());
6669 return path (__w);
6770}
68- # endif /* _LIBCPP_WIN32API */
71+ # endif /* _LIBCPP_WIN32API && _LIBCPP_HAS_LOCALIZATION */
6972
7073template <class _Source , __enable_if_t <__is_pathable<_Source>::value, int > = 0 >
7174_LIBCPP_HIDE_FROM_ABI _LIBCPP_DEPRECATED_WITH_CHAR8_T path u8path (const _Source& __s) {
0 commit comments