aboutsummaryrefslogtreecommitdiff
path: root/libcxx/include/__filesystem
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/include/__filesystem')
-rw-r--r--libcxx/include/__filesystem/copy_options.h20
-rw-r--r--libcxx/include/__filesystem/directory_entry.h159
-rw-r--r--libcxx/include/__filesystem/directory_iterator.h10
-rw-r--r--libcxx/include/__filesystem/directory_options.h20
-rw-r--r--libcxx/include/__filesystem/file_status.h18
-rw-r--r--libcxx/include/__filesystem/file_time_type.h4
-rw-r--r--libcxx/include/__filesystem/file_type.h6
-rw-r--r--libcxx/include/__filesystem/filesystem_error.h8
-rw-r--r--libcxx/include/__filesystem/operations.h10
-rw-r--r--libcxx/include/__filesystem/path.h133
-rw-r--r--libcxx/include/__filesystem/path_iterator.h24
-rw-r--r--libcxx/include/__filesystem/perm_options.h20
-rw-r--r--libcxx/include/__filesystem/perms.h20
-rw-r--r--libcxx/include/__filesystem/recursive_directory_iterator.h46
-rw-r--r--libcxx/include/__filesystem/space_info.h4
-rw-r--r--libcxx/include/__filesystem/u8path.h28
16 files changed, 259 insertions, 271 deletions
diff --git a/libcxx/include/__filesystem/copy_options.h b/libcxx/include/__filesystem/copy_options.h
index 11962e494c9d..60cab4ee6973 100644
--- a/libcxx/include/__filesystem/copy_options.h
+++ b/libcxx/include/__filesystem/copy_options.h
@@ -17,11 +17,11 @@
# pragma GCC system_header
#endif
-#ifndef _LIBCPP_CXX03_LANG
+#if _LIBCPP_STD_VER >= 17
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
-enum class _LIBCPP_ENUM_VIS copy_options : unsigned short {
+enum class copy_options : unsigned short {
none = 0,
skip_existing = 1,
overwrite_existing = 2,
@@ -35,46 +35,46 @@ enum class _LIBCPP_ENUM_VIS copy_options : unsigned short {
__in_recursive_copy = 512,
};
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr copy_options operator&(copy_options __lhs, copy_options __rhs) {
return static_cast<copy_options>(static_cast<unsigned short>(__lhs) &
static_cast<unsigned short>(__rhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr copy_options operator|(copy_options __lhs, copy_options __rhs) {
return static_cast<copy_options>(static_cast<unsigned short>(__lhs) |
static_cast<unsigned short>(__rhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr copy_options operator^(copy_options __lhs, copy_options __rhs) {
return static_cast<copy_options>(static_cast<unsigned short>(__lhs) ^
static_cast<unsigned short>(__rhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr copy_options operator~(copy_options __lhs) {
return static_cast<copy_options>(~static_cast<unsigned short>(__lhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline copy_options& operator&=(copy_options& __lhs, copy_options __rhs) {
return __lhs = __lhs & __rhs;
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline copy_options& operator|=(copy_options& __lhs, copy_options __rhs) {
return __lhs = __lhs | __rhs;
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline copy_options& operator^=(copy_options& __lhs, copy_options __rhs) {
return __lhs = __lhs ^ __rhs;
}
_LIBCPP_END_NAMESPACE_FILESYSTEM
-#endif // _LIBCPP_CXX03_LANG
+#endif // _LIBCPP_STD_VER >= 17
#endif // _LIBCPP___FILESYSTEM_COPY_OPTIONS_H
diff --git a/libcxx/include/__filesystem/directory_entry.h b/libcxx/include/__filesystem/directory_entry.h
index bb7a061db4ce..fe3cace853d6 100644
--- a/libcxx/include/__filesystem/directory_entry.h
+++ b/libcxx/include/__filesystem/directory_entry.h
@@ -26,7 +26,6 @@
#include <__utility/move.h>
#include <__utility/unreachable.h>
#include <cstdint>
-#include <iosfwd>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
@@ -35,14 +34,14 @@
_LIBCPP_PUSH_MACROS
#include <__undef_macros>
-#if !defined(_LIBCPP_CXX03_LANG) && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
+#if _LIBCPP_STD_VER >= 17 && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_PUSH
class directory_entry {
- typedef _VSTD_FS::path _Path;
+ typedef filesystem::path _Path;
public:
// constructors and destructors
@@ -50,13 +49,13 @@ public:
_LIBCPP_HIDE_FROM_ABI directory_entry(directory_entry const&) = default;
_LIBCPP_HIDE_FROM_ABI directory_entry(directory_entry&&) noexcept = default;
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
explicit directory_entry(_Path const& __p) : __p_(__p) {
error_code __ec;
__refresh(&__ec);
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
directory_entry(_Path const& __p, error_code& __ec) : __p_(__p) {
__refresh(&__ec);
}
@@ -66,183 +65,183 @@ public:
_LIBCPP_HIDE_FROM_ABI directory_entry& operator=(directory_entry const&) = default;
_LIBCPP_HIDE_FROM_ABI directory_entry& operator=(directory_entry&&) noexcept = default;
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
void assign(_Path const& __p) {
__p_ = __p;
error_code __ec;
__refresh(&__ec);
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
void assign(_Path const& __p, error_code& __ec) {
__p_ = __p;
__refresh(&__ec);
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
void replace_filename(_Path const& __p) {
__p_.replace_filename(__p);
error_code __ec;
__refresh(&__ec);
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
void replace_filename(_Path const& __p, error_code& __ec) {
__p_ = __p_.parent_path() / __p;
__refresh(&__ec);
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
void refresh() { __refresh(); }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
void refresh(error_code& __ec) noexcept { __refresh(&__ec); }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
_Path const& path() const noexcept { return __p_; }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
operator const _Path&() const noexcept { return __p_; }
- _LIBCPP_INLINE_VISIBILITY
- bool exists() const { return _VSTD_FS::exists(file_status{__get_ft()}); }
+ _LIBCPP_HIDE_FROM_ABI
+ bool exists() const { return filesystem::exists(file_status{__get_ft()}); }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool exists(error_code& __ec) const noexcept {
- return _VSTD_FS::exists(file_status{__get_ft(&__ec)});
+ return filesystem::exists(file_status{__get_ft(&__ec)});
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool is_block_file() const { return __get_ft() == file_type::block; }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool is_block_file(error_code& __ec) const noexcept {
return __get_ft(&__ec) == file_type::block;
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool is_character_file() const { return __get_ft() == file_type::character; }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool is_character_file(error_code& __ec) const noexcept {
return __get_ft(&__ec) == file_type::character;
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool is_directory() const { return __get_ft() == file_type::directory; }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool is_directory(error_code& __ec) const noexcept {
return __get_ft(&__ec) == file_type::directory;
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool is_fifo() const { return __get_ft() == file_type::fifo; }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool is_fifo(error_code& __ec) const noexcept {
return __get_ft(&__ec) == file_type::fifo;
}
- _LIBCPP_INLINE_VISIBILITY
- bool is_other() const { return _VSTD_FS::is_other(file_status{__get_ft()}); }
+ _LIBCPP_HIDE_FROM_ABI
+ bool is_other() const { return filesystem::is_other(file_status{__get_ft()}); }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool is_other(error_code& __ec) const noexcept {
- return _VSTD_FS::is_other(file_status{__get_ft(&__ec)});
+ return filesystem::is_other(file_status{__get_ft(&__ec)});
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool is_regular_file() const { return __get_ft() == file_type::regular; }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool is_regular_file(error_code& __ec) const noexcept {
return __get_ft(&__ec) == file_type::regular;
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool is_socket() const { return __get_ft() == file_type::socket; }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool is_socket(error_code& __ec) const noexcept {
return __get_ft(&__ec) == file_type::socket;
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool is_symlink() const { return __get_sym_ft() == file_type::symlink; }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool is_symlink(error_code& __ec) const noexcept {
return __get_sym_ft(&__ec) == file_type::symlink;
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
uintmax_t file_size() const { return __get_size(); }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
uintmax_t file_size(error_code& __ec) const noexcept {
return __get_size(&__ec);
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
uintmax_t hard_link_count() const { return __get_nlink(); }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
uintmax_t hard_link_count(error_code& __ec) const noexcept {
return __get_nlink(&__ec);
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
file_time_type last_write_time() const { return __get_write_time(); }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
file_time_type last_write_time(error_code& __ec) const noexcept {
return __get_write_time(&__ec);
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
file_status status() const { return __get_status(); }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
file_status status(error_code& __ec) const noexcept {
return __get_status(&__ec);
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
file_status symlink_status() const { return __get_symlink_status(); }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
file_status symlink_status(error_code& __ec) const noexcept {
return __get_symlink_status(&__ec);
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool operator==(directory_entry const& __rhs) const noexcept {
return __p_ == __rhs.__p_;
}
#if _LIBCPP_STD_VER <= 17
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool operator!=(directory_entry const& __rhs) const noexcept {
return __p_ != __rhs.__p_;
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool operator<(directory_entry const& __rhs) const noexcept {
return __p_ < __rhs.__p_;
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool operator<=(directory_entry const& __rhs) const noexcept {
return __p_ <= __rhs.__p_;
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool operator>(directory_entry const& __rhs) const noexcept {
return __p_ > __rhs.__p_;
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool operator>=(directory_entry const& __rhs) const noexcept {
return __p_ >= __rhs.__p_;
}
@@ -257,7 +256,7 @@ public:
#endif // _LIBCPP_STD_VER <= 17
template <class _CharT, class _Traits>
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
friend basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const directory_entry& __d) {
return __os << __d.path();
}
@@ -285,10 +284,10 @@ private:
file_type __type_;
_CacheType __cache_type_;
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
__cached_data() noexcept { __reset(); }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
void __reset() {
__cache_type_ = _Empty;
__type_ = file_type::none;
@@ -298,7 +297,7 @@ private:
}
};
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
static __cached_data __create_iter_result(file_type __ft) {
__cached_data __data;
__data.__type_ = __ft;
@@ -315,15 +314,15 @@ private:
return __data;
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
void __assign_iter_entry(_Path&& __p, __cached_data __dt) {
- __p_ = _VSTD::move(__p);
+ __p_ = std::move(__p);
__data_ = __dt;
}
_LIBCPP_EXPORTED_FROM_ABI error_code __do_refresh() noexcept;
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
static bool __is_dne_error(error_code const& __ec) {
if (!__ec)
return true;
@@ -336,7 +335,7 @@ private:
}
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
void __handle_error(const char* __msg, error_code* __dest_ec,
error_code const& __ec, bool __allow_dne = false) const {
if (__dest_ec) {
@@ -347,13 +346,13 @@ private:
__throw_filesystem_error(__msg, __p_, __ec);
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
void __refresh(error_code* __ec = nullptr) {
__handle_error("in directory_entry::refresh", __ec, __do_refresh(),
/*allow_dne*/ true);
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
file_type __get_sym_ft(error_code* __ec = nullptr) const {
switch (__data_.__cache_type_) {
case _Empty:
@@ -367,7 +366,7 @@ private:
case _IterNonSymlink:
case _RefreshNonSymlink:
file_status __st(__data_.__type_);
- if (__ec && !_VSTD_FS::exists(__st))
+ if (__ec && !filesystem::exists(__st))
*__ec = make_error_code(errc::no_such_file_or_directory);
else if (__ec)
__ec->clear();
@@ -376,7 +375,7 @@ private:
__libcpp_unreachable();
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
file_type __get_ft(error_code* __ec = nullptr) const {
switch (__data_.__cache_type_) {
case _Empty:
@@ -387,7 +386,7 @@ private:
case _RefreshNonSymlink:
case _RefreshSymlink: {
file_status __st(__data_.__type_);
- if (__ec && !_VSTD_FS::exists(__st))
+ if (__ec && !filesystem::exists(__st))
*__ec = make_error_code(errc::no_such_file_or_directory);
else if (__ec)
__ec->clear();
@@ -397,7 +396,7 @@ private:
__libcpp_unreachable();
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
file_status __get_status(error_code* __ec = nullptr) const {
switch (__data_.__cache_type_) {
case _Empty:
@@ -412,7 +411,7 @@ private:
__libcpp_unreachable();
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
file_status __get_symlink_status(error_code* __ec = nullptr) const {
switch (__data_.__cache_type_) {
case _Empty:
@@ -428,22 +427,22 @@ private:
__libcpp_unreachable();
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
uintmax_t __get_size(error_code* __ec = nullptr) const {
switch (__data_.__cache_type_) {
case _Empty:
case _IterNonSymlink:
case _IterSymlink:
case _RefreshSymlinkUnresolved:
- return _VSTD_FS::__file_size(__p_, __ec);
+ return filesystem::__file_size(__p_, __ec);
case _RefreshSymlink:
case _RefreshNonSymlink: {
error_code __m_ec;
file_status __st(__get_ft(&__m_ec));
__handle_error("in directory_entry::file_size", __ec, __m_ec);
- if (_VSTD_FS::exists(__st) && !_VSTD_FS::is_regular_file(__st)) {
- errc __err_kind = _VSTD_FS::is_directory(__st) ? errc::is_a_directory
- : errc::not_supported;
+ if (filesystem::exists(__st) && !filesystem::is_regular_file(__st)) {
+ errc __err_kind = filesystem::is_directory(__st) ? errc::is_a_directory
+ : errc::not_supported;
__handle_error("in directory_entry::file_size", __ec,
make_error_code(__err_kind));
}
@@ -453,14 +452,14 @@ private:
__libcpp_unreachable();
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
uintmax_t __get_nlink(error_code* __ec = nullptr) const {
switch (__data_.__cache_type_) {
case _Empty:
case _IterNonSymlink:
case _IterSymlink:
case _RefreshSymlinkUnresolved:
- return _VSTD_FS::__hard_link_count(__p_, __ec);
+ return filesystem::__hard_link_count(__p_, __ec);
case _RefreshSymlink:
case _RefreshNonSymlink: {
error_code __m_ec;
@@ -472,20 +471,20 @@ private:
__libcpp_unreachable();
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
file_time_type __get_write_time(error_code* __ec = nullptr) const {
switch (__data_.__cache_type_) {
case _Empty:
case _IterNonSymlink:
case _IterSymlink:
case _RefreshSymlinkUnresolved:
- return _VSTD_FS::__last_write_time(__p_, __ec);
+ return filesystem::__last_write_time(__p_, __ec);
case _RefreshSymlink:
case _RefreshNonSymlink: {
error_code __m_ec;
file_status __st(__get_ft(&__m_ec));
__handle_error("in directory_entry::last_write_time", __ec, __m_ec);
- if (_VSTD_FS::exists(__st) &&
+ if (filesystem::exists(__st) &&
__data_.__write_time_ == file_time_type::min())
__handle_error("in directory_entry::last_write_time", __ec,
make_error_code(errc::value_too_large));
@@ -502,8 +501,8 @@ private:
class __dir_element_proxy {
public:
- inline _LIBCPP_INLINE_VISIBILITY directory_entry operator*() {
- return _VSTD::move(__elem_);
+ inline _LIBCPP_HIDE_FROM_ABI directory_entry operator*() {
+ return std::move(__elem_);
}
private:
@@ -511,7 +510,7 @@ private:
friend class recursive_directory_iterator;
_LIBCPP_HIDE_FROM_ABI explicit __dir_element_proxy(directory_entry const& __e) : __elem_(__e) {}
_LIBCPP_HIDE_FROM_ABI __dir_element_proxy(__dir_element_proxy&& __o)
- : __elem_(_VSTD::move(__o.__elem_)) {}
+ : __elem_(std::move(__o.__elem_)) {}
directory_entry __elem_;
};
@@ -519,7 +518,7 @@ _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_POP
_LIBCPP_END_NAMESPACE_FILESYSTEM
-#endif // !defined(_LIBCPP_CXX03_LANG) && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
+#endif // _LIBCPP_STD_VER >= 17 && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
_LIBCPP_POP_MACROS
diff --git a/libcxx/include/__filesystem/directory_iterator.h b/libcxx/include/__filesystem/directory_iterator.h
index 632c2c806369..a2a48e593307 100644
--- a/libcxx/include/__filesystem/directory_iterator.h
+++ b/libcxx/include/__filesystem/directory_iterator.h
@@ -29,7 +29,7 @@
# pragma GCC system_header
#endif
-#if !defined(_LIBCPP_CXX03_LANG) && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
+#if _LIBCPP_STD_VER >= 17 && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
@@ -74,7 +74,7 @@ public:
directory_iterator& operator=(directory_iterator&& __o) noexcept {
// non-default implementation provided to support self-move assign.
if (this != &__o) {
- __imp_ = _VSTD::move(__o.__imp_);
+ __imp_ = std::move(__o.__imp_);
}
return *this;
}
@@ -156,14 +156,14 @@ _LIBCPP_END_NAMESPACE_FILESYSTEM
template <>
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY
-inline constexpr bool _VSTD::ranges::enable_borrowed_range<_VSTD_FS::directory_iterator> = true;
+inline constexpr bool std::ranges::enable_borrowed_range<std::filesystem::directory_iterator> = true;
template <>
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY
-inline constexpr bool _VSTD::ranges::enable_view<_VSTD_FS::directory_iterator> = true;
+inline constexpr bool std::ranges::enable_view<std::filesystem::directory_iterator> = true;
#endif // _LIBCPP_STD_VER >= 20
-#endif // !defined(_LIBCPP_CXX03_LANG) && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
+#endif // _LIBCPP_STD_VER >= 17 && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
#endif // _LIBCPP___FILESYSTEM_DIRECTORY_ITERATOR_H
diff --git a/libcxx/include/__filesystem/directory_options.h b/libcxx/include/__filesystem/directory_options.h
index 4c323ccb0cfe..05885bc488b0 100644
--- a/libcxx/include/__filesystem/directory_options.h
+++ b/libcxx/include/__filesystem/directory_options.h
@@ -17,55 +17,55 @@
# pragma GCC system_header
#endif
-#ifndef _LIBCPP_CXX03_LANG
+#if _LIBCPP_STD_VER >= 17
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
-enum class _LIBCPP_ENUM_VIS directory_options : unsigned char {
+enum class directory_options : unsigned char {
none = 0,
follow_directory_symlink = 1,
skip_permission_denied = 2
};
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr directory_options operator&(directory_options __lhs,
directory_options __rhs) {
return static_cast<directory_options>(static_cast<unsigned char>(__lhs) &
static_cast<unsigned char>(__rhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr directory_options operator|(directory_options __lhs,
directory_options __rhs) {
return static_cast<directory_options>(static_cast<unsigned char>(__lhs) |
static_cast<unsigned char>(__rhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr directory_options operator^(directory_options __lhs,
directory_options __rhs) {
return static_cast<directory_options>(static_cast<unsigned char>(__lhs) ^
static_cast<unsigned char>(__rhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr directory_options operator~(directory_options __lhs) {
return static_cast<directory_options>(~static_cast<unsigned char>(__lhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline directory_options& operator&=(directory_options& __lhs,
directory_options __rhs) {
return __lhs = __lhs & __rhs;
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline directory_options& operator|=(directory_options& __lhs,
directory_options __rhs) {
return __lhs = __lhs | __rhs;
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline directory_options& operator^=(directory_options& __lhs,
directory_options __rhs) {
return __lhs = __lhs ^ __rhs;
@@ -73,6 +73,6 @@ inline directory_options& operator^=(directory_options& __lhs,
_LIBCPP_END_NAMESPACE_FILESYSTEM
-#endif // _LIBCPP_CXX03_LANG
+#endif // _LIBCPP_STD_VER >= 17
#endif // _LIBCPP___FILESYSTEM_DIRECTORY_OPTIONS_H
diff --git a/libcxx/include/__filesystem/file_status.h b/libcxx/include/__filesystem/file_status.h
index 0cf405b9c29e..2a1ce85a3754 100644
--- a/libcxx/include/__filesystem/file_status.h
+++ b/libcxx/include/__filesystem/file_status.h
@@ -19,16 +19,16 @@
# pragma GCC system_header
#endif
-#ifndef _LIBCPP_CXX03_LANG
+#if _LIBCPP_STD_VER >= 17
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
class _LIBCPP_EXPORTED_FROM_ABI file_status {
public:
// constructors
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
file_status() noexcept : file_status(file_type::none) {}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
explicit file_status(file_type __ft, perms __prms = perms::unknown) noexcept
: __ft_(__ft),
__prms_(__prms) {}
@@ -36,24 +36,24 @@ public:
_LIBCPP_HIDE_FROM_ABI file_status(const file_status&) noexcept = default;
_LIBCPP_HIDE_FROM_ABI file_status(file_status&&) noexcept = default;
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
~file_status() {}
_LIBCPP_HIDE_FROM_ABI file_status& operator=(const file_status&) noexcept = default;
_LIBCPP_HIDE_FROM_ABI file_status& operator=(file_status&&) noexcept = default;
// observers
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
file_type type() const noexcept { return __ft_; }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
perms permissions() const noexcept { return __prms_; }
// modifiers
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
void type(file_type __ft) noexcept { __ft_ = __ft; }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
void permissions(perms __p) noexcept { __prms_ = __p; }
# if _LIBCPP_STD_VER >= 20
@@ -71,6 +71,6 @@ private:
_LIBCPP_END_NAMESPACE_FILESYSTEM
-#endif // _LIBCPP_CXX03_LANG
+#endif // _LIBCPP_STD_VER >= 17
#endif // _LIBCPP___FILESYSTEM_FILE_STATUS_H
diff --git a/libcxx/include/__filesystem/file_time_type.h b/libcxx/include/__filesystem/file_time_type.h
index 7c4932e603bc..e086dbcc3f51 100644
--- a/libcxx/include/__filesystem/file_time_type.h
+++ b/libcxx/include/__filesystem/file_time_type.h
@@ -19,7 +19,7 @@
# pragma GCC system_header
#endif
-#ifndef _LIBCPP_CXX03_LANG
+#if _LIBCPP_STD_VER >= 17
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
@@ -27,6 +27,6 @@ typedef chrono::time_point<_FilesystemClock> file_time_type;
_LIBCPP_END_NAMESPACE_FILESYSTEM
-#endif // _LIBCPP_CXX03_LANG
+#endif // _LIBCPP_STD_VER >= 17
#endif // _LIBCPP___FILESYSTEM_FILE_TIME_TYPE_H
diff --git a/libcxx/include/__filesystem/file_type.h b/libcxx/include/__filesystem/file_type.h
index c756a05c848b..f456552db543 100644
--- a/libcxx/include/__filesystem/file_type.h
+++ b/libcxx/include/__filesystem/file_type.h
@@ -17,13 +17,13 @@
# pragma GCC system_header
#endif
-#ifndef _LIBCPP_CXX03_LANG
+#if _LIBCPP_STD_VER >= 17
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
// On Windows, the library never identifies files as block, character, fifo
// or socket.
-enum class _LIBCPP_ENUM_VIS file_type : signed char {
+enum class file_type : signed char {
none = 0,
not_found = -1,
regular = 1,
@@ -38,6 +38,6 @@ enum class _LIBCPP_ENUM_VIS file_type : signed char {
_LIBCPP_END_NAMESPACE_FILESYSTEM
-#endif // _LIBCPP_CXX03_LANG
+#endif // _LIBCPP_STD_VER >= 17
#endif // _LIBCPP___FILESYSTEM_FILE_TYPE_H
diff --git a/libcxx/include/__filesystem/filesystem_error.h b/libcxx/include/__filesystem/filesystem_error.h
index 713cc357ee82..bfdcc5eaee52 100644
--- a/libcxx/include/__filesystem/filesystem_error.h
+++ b/libcxx/include/__filesystem/filesystem_error.h
@@ -18,15 +18,13 @@
#include <__system_error/system_error.h>
#include <__utility/forward.h>
#include <__verbose_abort>
-#include <iosfwd>
-#include <new>
#include <string>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif
-#ifndef _LIBCPP_CXX03_LANG
+#if _LIBCPP_STD_VER >= 17
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
@@ -74,7 +72,7 @@ private:
template <class... _Args>
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY void
__throw_filesystem_error(_Args&&... __args) {
- throw filesystem_error(_VSTD::forward<_Args>(__args)...);
+ throw filesystem_error(std::forward<_Args>(__args)...);
}
# else
template <class... _Args>
@@ -86,6 +84,6 @@ __throw_filesystem_error(_Args&&...) {
_LIBCPP_END_NAMESPACE_FILESYSTEM
-#endif // _LIBCPP_CXX03_LANG
+#endif // _LIBCPP_STD_VER >= 17
#endif // _LIBCPP___FILESYSTEM_FILESYSTEM_ERROR_H
diff --git a/libcxx/include/__filesystem/operations.h b/libcxx/include/__filesystem/operations.h
index 71b3fb859d49..ebe816549a9e 100644
--- a/libcxx/include/__filesystem/operations.h
+++ b/libcxx/include/__filesystem/operations.h
@@ -28,7 +28,7 @@
# pragma GCC system_header
#endif
-#if !defined(_LIBCPP_CXX03_LANG) && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
+#if _LIBCPP_STD_VER >= 17 && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
@@ -98,7 +98,7 @@ inline _LIBCPP_HIDE_FROM_ABI bool status_known(file_status __s) noexcept { retur
inline _LIBCPP_HIDE_FROM_ABI bool exists(file_status __s) noexcept { return status_known(__s) && __s.type() != file_type::not_found; }
inline _LIBCPP_HIDE_FROM_ABI bool exists(const path& __p) { return exists(__status(__p)); }
-inline _LIBCPP_INLINE_VISIBILITY bool exists(const path& __p, error_code& __ec) noexcept {
+inline _LIBCPP_HIDE_FROM_ABI bool exists(const path& __p, error_code& __ec) noexcept {
auto __s = __status(__p, &__ec);
if (status_known(__s))
__ec.clear();
@@ -145,7 +145,7 @@ inline _LIBCPP_HIDE_FROM_ABI void permissions(const path& __p, perms __prms, per
inline _LIBCPP_HIDE_FROM_ABI void permissions(const path& __p, perms __prms, error_code& __ec) noexcept { __permissions(__p, __prms, perm_options::replace, &__ec); }
inline _LIBCPP_HIDE_FROM_ABI void permissions(const path& __p, perms __prms, perm_options __opts, error_code& __ec) { __permissions(__p, __prms, __opts, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY path proximate(const path& __p, const path& __base, error_code& __ec) {
+inline _LIBCPP_HIDE_FROM_ABI path proximate(const path& __p, const path& __base, error_code& __ec) {
path __tmp = __weakly_canonical(__p, &__ec);
if (__ec)
return {};
@@ -160,7 +160,7 @@ inline _LIBCPP_HIDE_FROM_ABI path proximate(const path& __p, const path& __base
inline _LIBCPP_HIDE_FROM_ABI path read_symlink(const path& __p) { return __read_symlink(__p); }
inline _LIBCPP_HIDE_FROM_ABI path read_symlink(const path& __p, error_code& __ec) { return __read_symlink(__p, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY path relative(const path& __p, const path& __base, error_code& __ec) {
+inline _LIBCPP_HIDE_FROM_ABI path relative(const path& __p, const path& __base, error_code& __ec) {
path __tmp = __weakly_canonical(__p, &__ec);
if (__ec)
return path();
@@ -196,6 +196,6 @@ _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_POP
_LIBCPP_END_NAMESPACE_FILESYSTEM
-#endif // !defined(_LIBCPP_CXX03_LANG) && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
+#endif // _LIBCPP_STD_VER >= 17 && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
#endif // _LIBCPP___FILESYSTEM_OPERATIONS_H
diff --git a/libcxx/include/__filesystem/path.h b/libcxx/include/__filesystem/path.h
index 77699c5ae47f..466fa25a38ed 100644
--- a/libcxx/include/__filesystem/path.h
+++ b/libcxx/include/__filesystem/path.h
@@ -36,7 +36,7 @@
# pragma GCC system_header
#endif
-#ifndef _LIBCPP_CXX03_LANG
+#if _LIBCPP_STD_VER >= 17
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
@@ -76,9 +76,9 @@ struct __can_convert_char<char32_t> {
using __char_type = char32_t;
};
-template <class _ECharT>
+template <class _ECharT, __enable_if_t<__can_convert_char<_ECharT>::value, int> = 0>
_LIBCPP_HIDE_FROM_ABI
-typename enable_if<__can_convert_char<_ECharT>::value, bool>::type
+bool
__is_separator(_ECharT __e) {
#if defined(_LIBCPP_WIN32API)
return __e == _ECharT('/') || __e == _ECharT('\\');
@@ -107,7 +107,6 @@ struct __is_pathable_string<
_Void<typename __can_convert_char<_ECharT>::__char_type> >
: public __can_convert_char<_ECharT> {
using _Str = basic_string<_ECharT, _Traits, _Alloc>;
- using _Base = __can_convert_char<_ECharT>;
_LIBCPP_HIDE_FROM_ABI
static _ECharT const* __range_begin(_Str const& __s) { return __s.data(); }
@@ -129,7 +128,6 @@ struct __is_pathable_string<
_Void<typename __can_convert_char<_ECharT>::__char_type> >
: public __can_convert_char<_ECharT> {
using _Str = basic_string_view<_ECharT, _Traits>;
- using _Base = __can_convert_char<_ECharT>;
_LIBCPP_HIDE_FROM_ABI
static _ECharT const* __range_begin(_Str const& __s) { return __s.data(); }
@@ -155,8 +153,6 @@ struct __is_pathable_char_array : false_type {};
template <class _Source, class _ECharT, class _UPtr>
struct __is_pathable_char_array<_Source, _ECharT*, _UPtr, true>
: __can_convert_char<__remove_const_t<_ECharT> > {
- using _Base = __can_convert_char<__remove_const_t<_ECharT> >;
-
_LIBCPP_HIDE_FROM_ABI
static _ECharT const* __range_begin(const _ECharT* __b) { return __b; }
@@ -185,7 +181,6 @@ struct __is_pathable_iter<
typename iterator_traits<_Iter>::value_type>::__char_type> >
: __can_convert_char<typename iterator_traits<_Iter>::value_type> {
using _ECharT = typename iterator_traits<_Iter>::value_type;
- using _Base = __can_convert_char<_ECharT>;
_LIBCPP_HIDE_FROM_ABI
static _Iter __range_begin(_Iter __b) { return __b; }
@@ -305,17 +300,17 @@ struct _PathCVT {
template <>
struct _PathCVT<__path_value> {
- template <class _Iter>
+ template <class _Iter, __enable_if_t<__has_exactly_input_iterator_category<_Iter>::value, int> = 0>
_LIBCPP_HIDE_FROM_ABI
- static typename enable_if<__has_exactly_input_iterator_category<_Iter>::value>::type
+ static void
__append_range(__path_string& __dest, _Iter __b, _Iter __e) {
for (; __b != __e; ++__b)
__dest.push_back(*__b);
}
- template <class _Iter>
+ template <class _Iter, __enable_if_t<__has_forward_iterator_category<_Iter>::value, int> = 0>
_LIBCPP_HIDE_FROM_ABI
- static typename enable_if<__has_forward_iterator_category<_Iter>::value>::type
+ static void
__append_range(__path_string& __dest, _Iter __b, _Iter __e) {
__dest.append(__b, __e);
}
@@ -350,17 +345,17 @@ struct _PathCVT<char> {
__char_to_wide(__str, const_cast<__path_value*>(__dest.data()) + __pos, __size);
}
- template <class _Iter>
+ template <class _Iter, __enable_if_t<__has_exactly_input_iterator_category<_Iter>::value, int> = 0>
_LIBCPP_HIDE_FROM_ABI
- static typename enable_if<__has_exactly_input_iterator_category<_Iter>::value>::type
+ static void
__append_range(__path_string& __dest, _Iter __b, _Iter __e) {
basic_string<char> __tmp(__b, __e);
__append_string(__dest, __tmp);
}
- template <class _Iter>
+ template <class _Iter, __enable_if_t<__has_forward_iterator_category<_Iter>::value, int> = 0>
_LIBCPP_HIDE_FROM_ABI
- static typename enable_if<__has_forward_iterator_category<_Iter>::value>::type
+ static void
__append_range(__path_string& __dest, _Iter __b, _Iter __e) {
basic_string<char> __tmp(__b, __e);
__append_string(__dest, __tmp);
@@ -445,8 +440,7 @@ struct _PathExport<char8_t> {
class _LIBCPP_EXPORTED_FROM_ABI path {
template <class _SourceOrIter, class _Tp = path&>
- using _EnableIfPathable =
- typename enable_if<__is_pathable<_SourceOrIter>::value, _Tp>::type;
+ using _EnableIfPathable = __enable_if_t<__is_pathable<_SourceOrIter>::value, _Tp>;
template <class _Tp>
using _SourceChar = typename __is_pathable<_Tp>::__char_type;
@@ -465,7 +459,7 @@ public:
typedef basic_string<value_type> string_type;
typedef basic_string_view<value_type> __string_view;
- enum _LIBCPP_ENUM_VIS format : unsigned char {
+ enum format : unsigned char {
auto_format,
native_format,
generic_format
@@ -475,11 +469,11 @@ public:
_LIBCPP_HIDE_FROM_ABI path() noexcept {}
_LIBCPP_HIDE_FROM_ABI path(const path& __p) : __pn_(__p.__pn_) {}
_LIBCPP_HIDE_FROM_ABI path(path&& __p) noexcept
- : __pn_(_VSTD::move(__p.__pn_)) {}
+ : __pn_(std::move(__p.__pn_)) {}
_LIBCPP_HIDE_FROM_ABI
path(string_type&& __s, format = format::auto_format) noexcept
- : __pn_(_VSTD::move(__s)) {}
+ : __pn_(std::move(__s)) {}
template <class _Source, class = _EnableIfPathable<_Source, void> >
_LIBCPP_HIDE_FROM_ABI
@@ -517,19 +511,19 @@ public:
_LIBCPP_HIDE_FROM_ABI
path& operator=(path&& __p) noexcept {
- __pn_ = _VSTD::move(__p.__pn_);
+ __pn_ = std::move(__p.__pn_);
return *this;
}
_LIBCPP_HIDE_FROM_ABI
path& operator=(string_type&& __s) noexcept {
- __pn_ = _VSTD::move(__s);
+ __pn_ = std::move(__s);
return *this;
}
_LIBCPP_HIDE_FROM_ABI
path& assign(string_type&& __s) noexcept {
- __pn_ = _VSTD::move(__s);
+ __pn_ = std::move(__s);
return *this;
}
@@ -580,7 +574,7 @@ public:
return *this;
}
template <class _Source>
- _LIBCPP_INLINE_VISIBILITY _EnableIfPathable<_Source>
+ _LIBCPP_HIDE_FROM_ABI _EnableIfPathable<_Source>
operator/=(const _Source& __src) {
return operator/=(path(__src));
}
@@ -623,7 +617,7 @@ public:
_EnableIfPathable<_Source> append(const _Source& __src) {
using _Traits = __is_pathable<_Source>;
using _CVT = _PathCVT<_SourceChar<_Source> >;
- bool __source_is_absolute = _VSTD_FS::__is_separator(_Traits::__first_or_null(__src));
+ bool __source_is_absolute = filesystem::__is_separator(_Traits::__first_or_null(__src));
if (__source_is_absolute)
__pn_.clear();
else if (has_filename())
@@ -638,7 +632,7 @@ public:
typedef typename iterator_traits<_InputIt>::value_type _ItVal;
static_assert(__can_convert_char<_ItVal>::value, "Must convertible");
using _CVT = _PathCVT<_ItVal>;
- if (__first != __last && _VSTD_FS::__is_separator(*__first))
+ if (__first != __last && filesystem::__is_separator(*__first))
__pn_.clear();
else if (has_filename())
__pn_ += preferred_separator;
@@ -678,9 +672,9 @@ public:
return *this;
}
- template <class _ECharT>
+ template <class _ECharT, __enable_if_t<__can_convert_char<_ECharT>::value, int> = 0>
_LIBCPP_HIDE_FROM_ABI
- typename enable_if<__can_convert_char<_ECharT>::value, path&>::type
+ path&
operator+=(_ECharT __x) {
_PathCVT<_ECharT>::__append_source(__pn_,
basic_string_view<_ECharT>(&__x, 1));
@@ -715,7 +709,7 @@ public:
_LIBCPP_HIDE_FROM_ABI
path& make_preferred() {
#if defined(_LIBCPP_WIN32API)
- _VSTD::replace(__pn_.begin(), __pn_.end(), L'/', L'\\');
+ std::replace(__pn_.begin(), __pn_.end(), L'/', L'\\');
#endif
return *this;
}
@@ -784,13 +778,13 @@ public:
_LIBCPP_HIDE_FROM_ABI operator string_type() const { return __pn_; }
#if defined(_LIBCPP_WIN32API)
- _LIBCPP_HIDE_FROM_ABI _VSTD::wstring wstring() const { return __pn_; }
+ _LIBCPP_HIDE_FROM_ABI std::wstring wstring() const { return __pn_; }
_LIBCPP_HIDE_FROM_ABI
- _VSTD::wstring generic_wstring() const {
- _VSTD::wstring __s;
+ std::wstring generic_wstring() const {
+ std::wstring __s;
__s.resize(__pn_.size());
- _VSTD::replace_copy(__pn_.begin(), __pn_.end(), __s.begin(), '\\', '/');
+ std::replace_copy(__pn_.begin(), __pn_.end(), __s.begin(), '\\', '/');
return __s;
}
@@ -807,7 +801,7 @@ public:
return __s;
}
- _LIBCPP_HIDE_FROM_ABI _VSTD::string string() const {
+ _LIBCPP_HIDE_FROM_ABI std::string string() const {
return string<char>();
}
_LIBCPP_HIDE_FROM_ABI __u8_string u8string() const {
@@ -818,10 +812,10 @@ public:
return __s;
}
- _LIBCPP_HIDE_FROM_ABI _VSTD::u16string u16string() const {
+ _LIBCPP_HIDE_FROM_ABI std::u16string u16string() const {
return string<char16_t>();
}
- _LIBCPP_HIDE_FROM_ABI _VSTD::u32string u32string() const {
+ _LIBCPP_HIDE_FROM_ABI std::u32string u32string() const {
return string<char32_t>();
}
@@ -836,28 +830,28 @@ public:
// Note: This (and generic_u8string below) is slightly suboptimal as
// it iterates twice over the string; once to convert it to the right
// character type, and once to replace path delimiters.
- _VSTD::replace(__s.begin(), __s.end(),
+ std::replace(__s.begin(), __s.end(),
static_cast<_ECharT>('\\'), static_cast<_ECharT>('/'));
return __s;
}
- _LIBCPP_HIDE_FROM_ABI _VSTD::string generic_string() const { return generic_string<char>(); }
- _LIBCPP_HIDE_FROM_ABI _VSTD::u16string generic_u16string() const { return generic_string<char16_t>(); }
- _LIBCPP_HIDE_FROM_ABI _VSTD::u32string generic_u32string() const { return generic_string<char32_t>(); }
+ _LIBCPP_HIDE_FROM_ABI std::string generic_string() const { return generic_string<char>(); }
+ _LIBCPP_HIDE_FROM_ABI std::u16string generic_u16string() const { return generic_string<char16_t>(); }
+ _LIBCPP_HIDE_FROM_ABI std::u32string generic_u32string() const { return generic_string<char32_t>(); }
_LIBCPP_HIDE_FROM_ABI
__u8_string generic_u8string() const {
__u8_string __s = u8string();
- _VSTD::replace(__s.begin(), __s.end(), '\\', '/');
+ std::replace(__s.begin(), __s.end(), '\\', '/');
return __s;
}
#endif /* !_LIBCPP_HAS_NO_LOCALIZATION */
#else /* _LIBCPP_WIN32API */
- _LIBCPP_HIDE_FROM_ABI _VSTD::string string() const { return __pn_; }
+ _LIBCPP_HIDE_FROM_ABI std::string string() const { return __pn_; }
#ifndef _LIBCPP_HAS_NO_CHAR8_T
- _LIBCPP_HIDE_FROM_ABI _VSTD::u8string u8string() const { return _VSTD::u8string(__pn_.begin(), __pn_.end()); }
+ _LIBCPP_HIDE_FROM_ABI std::u8string u8string() const { return std::u8string(__pn_.begin(), __pn_.end()); }
#else
- _LIBCPP_HIDE_FROM_ABI _VSTD::string u8string() const { return __pn_; }
+ _LIBCPP_HIDE_FROM_ABI std::string u8string() const { return __pn_; }
#endif
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
@@ -875,24 +869,24 @@ public:
}
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
- _LIBCPP_HIDE_FROM_ABI _VSTD::wstring wstring() const {
+ _LIBCPP_HIDE_FROM_ABI std::wstring wstring() const {
return string<wchar_t>();
}
#endif
- _LIBCPP_HIDE_FROM_ABI _VSTD::u16string u16string() const {
+ _LIBCPP_HIDE_FROM_ABI std::u16string u16string() const {
return string<char16_t>();
}
- _LIBCPP_HIDE_FROM_ABI _VSTD::u32string u32string() const {
+ _LIBCPP_HIDE_FROM_ABI std::u32string u32string() const {
return string<char32_t>();
}
#endif /* !_LIBCPP_HAS_NO_LOCALIZATION */
// generic format observers
- _LIBCPP_HIDE_FROM_ABI _VSTD::string generic_string() const { return __pn_; }
+ _LIBCPP_HIDE_FROM_ABI std::string generic_string() const { return __pn_; }
#ifndef _LIBCPP_HAS_NO_CHAR8_T
- _LIBCPP_HIDE_FROM_ABI _VSTD::u8string generic_u8string() const { return _VSTD::u8string(__pn_.begin(), __pn_.end()); }
+ _LIBCPP_HIDE_FROM_ABI std::u8string generic_u8string() const { return std::u8string(__pn_.begin(), __pn_.end()); }
#else
- _LIBCPP_HIDE_FROM_ABI _VSTD::string generic_u8string() const { return __pn_; }
+ _LIBCPP_HIDE_FROM_ABI std::string generic_u8string() const { return __pn_; }
#endif
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
@@ -905,10 +899,10 @@ public:
}
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
- _LIBCPP_HIDE_FROM_ABI _VSTD::wstring generic_wstring() const { return string<wchar_t>(); }
+ _LIBCPP_HIDE_FROM_ABI std::wstring generic_wstring() const { return string<wchar_t>(); }
#endif
- _LIBCPP_HIDE_FROM_ABI _VSTD::u16string generic_u16string() const { return string<char16_t>(); }
- _LIBCPP_HIDE_FROM_ABI _VSTD::u32string generic_u32string() const { return string<char32_t>(); }
+ _LIBCPP_HIDE_FROM_ABI std::u16string generic_u16string() const { return string<char16_t>(); }
+ _LIBCPP_HIDE_FROM_ABI std::u32string generic_u32string() const { return string<char32_t>(); }
#endif /* !_LIBCPP_HAS_NO_LOCALIZATION */
#endif /* !_LIBCPP_WIN32API */
@@ -1040,23 +1034,21 @@ public:
iterator end() const;
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
- template <class _CharT, class _Traits>
+ template <class _CharT, class _Traits, __enable_if_t<is_same<_CharT, value_type>::value &&
+ is_same<_Traits, char_traits<value_type> >::value, int> = 0>
_LIBCPP_HIDE_FROM_ABI friend
- typename enable_if<is_same<_CharT, value_type>::value &&
- is_same<_Traits, char_traits<value_type> >::value,
- basic_ostream<_CharT, _Traits>&>::type
+ basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT, _Traits>& __os, const path& __p) {
- __os << _VSTD::__quoted(__p.native());
+ __os << std::__quoted(__p.native());
return __os;
}
- template <class _CharT, class _Traits>
+ template <class _CharT, class _Traits, __enable_if_t<!is_same<_CharT, value_type>::value ||
+ !is_same<_Traits, char_traits<value_type> >::value, int> = 0>
_LIBCPP_HIDE_FROM_ABI friend
- typename enable_if<!is_same<_CharT, value_type>::value ||
- !is_same<_Traits, char_traits<value_type> >::value,
- basic_ostream<_CharT, _Traits>&>::type
+ basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT, _Traits>& __os, const path& __p) {
- __os << _VSTD::__quoted(__p.string<_CharT, _Traits>());
+ __os << std::__quoted(__p.string<_CharT, _Traits>());
return __os;
}
@@ -1064,15 +1056,14 @@ public:
_LIBCPP_HIDE_FROM_ABI friend basic_istream<_CharT, _Traits>&
operator>>(basic_istream<_CharT, _Traits>& __is, path& __p) {
basic_string<_CharT, _Traits> __tmp;
- __is >> _VSTD::__quoted(__tmp);
+ __is >> std::__quoted(__tmp);
__p = __tmp;
return __is;
}
#endif // !_LIBCPP_HAS_NO_LOCALIZATION
private:
- inline _LIBCPP_HIDE_FROM_ABI path&
- __assign_view(__string_view const& __s) noexcept {
+ inline _LIBCPP_HIDE_FROM_ABI path& __assign_view(__string_view const& __s) {
__pn_ = string_type(__s);
return *this;
}
@@ -1092,14 +1083,14 @@ _LIBCPP_END_NAMESPACE_FILESYSTEM
_LIBCPP_BEGIN_NAMESPACE_STD
template <>
-struct _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY hash<_VSTD_FS::path> : __unary_function<_VSTD_FS::path, size_t> {
- _LIBCPP_HIDE_FROM_ABI size_t operator()(_VSTD_FS::path const& __p) const noexcept {
- return _VSTD_FS::hash_value(__p);
+struct _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY hash<filesystem::path> : __unary_function<filesystem::path, size_t> {
+ _LIBCPP_HIDE_FROM_ABI size_t operator()(filesystem::path const& __p) const noexcept {
+ return filesystem::hash_value(__p);
}
};
_LIBCPP_END_NAMESPACE_STD
-#endif // _LIBCPP_CXX03_LANG
+#endif // _LIBCPP_STD_VER >= 17
#endif // _LIBCPP___FILESYSTEM_PATH_H
diff --git a/libcxx/include/__filesystem/path_iterator.h b/libcxx/include/__filesystem/path_iterator.h
index 9961b46cf81c..598d65d3d72e 100644
--- a/libcxx/include/__filesystem/path_iterator.h
+++ b/libcxx/include/__filesystem/path_iterator.h
@@ -23,7 +23,7 @@
# pragma GCC system_header
#endif
-#ifndef _LIBCPP_CXX03_LANG
+#if _LIBCPP_STD_VER >= 17
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
@@ -49,7 +49,7 @@ public:
typedef path reference;
public:
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
iterator()
: __stashed_elem_(), __path_ptr_(nullptr), __entry_(),
__state_(_Singular) {}
@@ -59,13 +59,13 @@ public:
_LIBCPP_HIDE_FROM_ABI iterator& operator=(const iterator&) = default;
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
reference operator*() const { return __stashed_elem_; }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
pointer operator->() const { return &__stashed_elem_; }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
iterator& operator++() {
_LIBCPP_ASSERT_UNCATEGORIZED(__state_ != _Singular,
"attempting to increment a singular iterator");
@@ -74,14 +74,14 @@ public:
return __increment();
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
iterator operator++(int) {
iterator __it(*this);
this->operator++();
return __it;
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
iterator& operator--() {
_LIBCPP_ASSERT_UNCATEGORIZED(__state_ != _Singular,
"attempting to decrement a singular iterator");
@@ -90,7 +90,7 @@ public:
return __decrement();
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
iterator operator--(int) {
iterator __it(*this);
this->operator--();
@@ -100,7 +100,7 @@ public:
private:
friend class path;
- inline _LIBCPP_INLINE_VISIBILITY friend bool operator==(const iterator&,
+ inline _LIBCPP_HIDE_FROM_ABI friend bool operator==(const iterator&,
const iterator&);
iterator& __increment();
@@ -113,20 +113,20 @@ private:
};
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY
-inline _LIBCPP_INLINE_VISIBILITY bool operator==(const path::iterator& __lhs,
+inline _LIBCPP_HIDE_FROM_ABI bool operator==(const path::iterator& __lhs,
const path::iterator& __rhs) {
return __lhs.__path_ptr_ == __rhs.__path_ptr_ &&
__lhs.__entry_.data() == __rhs.__entry_.data();
}
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY
-inline _LIBCPP_INLINE_VISIBILITY bool operator!=(const path::iterator& __lhs,
+inline _LIBCPP_HIDE_FROM_ABI bool operator!=(const path::iterator& __lhs,
const path::iterator& __rhs) {
return !(__lhs == __rhs);
}
_LIBCPP_END_NAMESPACE_FILESYSTEM
-#endif // _LIBCPP_CXX03_LANG
+#endif // _LIBCPP_STD_VER >= 17
#endif // _LIBCPP___FILESYSTEM_PATH_ITERATOR_H
diff --git a/libcxx/include/__filesystem/perm_options.h b/libcxx/include/__filesystem/perm_options.h
index e77af9ef97e1..ecf506fa4e8f 100644
--- a/libcxx/include/__filesystem/perm_options.h
+++ b/libcxx/include/__filesystem/perm_options.h
@@ -17,57 +17,57 @@
# pragma GCC system_header
#endif
-#ifndef _LIBCPP_CXX03_LANG
+#if _LIBCPP_STD_VER >= 17
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
-enum class _LIBCPP_ENUM_VIS perm_options : unsigned char {
+enum class perm_options : unsigned char {
replace = 1,
add = 2,
remove = 4,
nofollow = 8
};
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr perm_options operator&(perm_options __lhs, perm_options __rhs) {
return static_cast<perm_options>(static_cast<unsigned>(__lhs) &
static_cast<unsigned>(__rhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr perm_options operator|(perm_options __lhs, perm_options __rhs) {
return static_cast<perm_options>(static_cast<unsigned>(__lhs) |
static_cast<unsigned>(__rhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr perm_options operator^(perm_options __lhs, perm_options __rhs) {
return static_cast<perm_options>(static_cast<unsigned>(__lhs) ^
static_cast<unsigned>(__rhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr perm_options operator~(perm_options __lhs) {
return static_cast<perm_options>(~static_cast<unsigned>(__lhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline perm_options& operator&=(perm_options& __lhs, perm_options __rhs) {
return __lhs = __lhs & __rhs;
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline perm_options& operator|=(perm_options& __lhs, perm_options __rhs) {
return __lhs = __lhs | __rhs;
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline perm_options& operator^=(perm_options& __lhs, perm_options __rhs) {
return __lhs = __lhs ^ __rhs;
}
_LIBCPP_END_NAMESPACE_FILESYSTEM
-#endif // _LIBCPP_CXX03_LANG
+#endif // _LIBCPP_STD_VER >= 17
#endif // _LIBCPP___FILESYSTEM_PERM_OPTIONS_H
diff --git a/libcxx/include/__filesystem/perms.h b/libcxx/include/__filesystem/perms.h
index 77bc65210342..9f45f0c25f03 100644
--- a/libcxx/include/__filesystem/perms.h
+++ b/libcxx/include/__filesystem/perms.h
@@ -17,7 +17,7 @@
# pragma GCC system_header
#endif
-#ifndef _LIBCPP_CXX03_LANG
+#if _LIBCPP_STD_VER >= 17
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
@@ -25,7 +25,7 @@ _LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
// file, and the executable bit is always returned as set. When setting
// permissions, as long as the write bit is set for either owner, group or
// others, the readonly flag is cleared.
-enum class _LIBCPP_ENUM_VIS perms : unsigned {
+enum class perms : unsigned {
none = 0,
owner_read = 0400,
@@ -52,40 +52,40 @@ enum class _LIBCPP_ENUM_VIS perms : unsigned {
unknown = 0xFFFF,
};
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr perms operator&(perms __lhs, perms __rhs) {
return static_cast<perms>(static_cast<unsigned>(__lhs) &
static_cast<unsigned>(__rhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr perms operator|(perms __lhs, perms __rhs) {
return static_cast<perms>(static_cast<unsigned>(__lhs) |
static_cast<unsigned>(__rhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr perms operator^(perms __lhs, perms __rhs) {
return static_cast<perms>(static_cast<unsigned>(__lhs) ^
static_cast<unsigned>(__rhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline constexpr perms operator~(perms __lhs) {
return static_cast<perms>(~static_cast<unsigned>(__lhs));
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline perms& operator&=(perms& __lhs, perms __rhs) { return __lhs = __lhs & __rhs; }
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline perms& operator|=(perms& __lhs, perms __rhs) { return __lhs = __lhs | __rhs; }
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline perms& operator^=(perms& __lhs, perms __rhs) { return __lhs = __lhs ^ __rhs; }
_LIBCPP_END_NAMESPACE_FILESYSTEM
-#endif // _LIBCPP_CXX03_LANG
+#endif // _LIBCPP_STD_VER >= 17
#endif // _LIBCPP___FILESYSTEM_PERMS_H
diff --git a/libcxx/include/__filesystem/recursive_directory_iterator.h b/libcxx/include/__filesystem/recursive_directory_iterator.h
index c38d58e50215..e0aac636db8c 100644
--- a/libcxx/include/__filesystem/recursive_directory_iterator.h
+++ b/libcxx/include/__filesystem/recursive_directory_iterator.h
@@ -28,7 +28,7 @@
# pragma GCC system_header
#endif
-#if !defined(_LIBCPP_CXX03_LANG) && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
+#if _LIBCPP_STD_VER >= 17 && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
@@ -44,20 +44,20 @@ public:
public:
// constructors and destructor
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
recursive_directory_iterator() noexcept : __rec_(false) {}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
explicit recursive_directory_iterator(
const path& __p, directory_options __xoptions = directory_options::none)
: recursive_directory_iterator(__p, __xoptions, nullptr) {}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
recursive_directory_iterator(const path& __p, directory_options __xoptions,
error_code& __ec)
: recursive_directory_iterator(__p, __xoptions, &__ec) {}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
recursive_directory_iterator(const path& __p, error_code& __ec)
: recursive_directory_iterator(__p, directory_options::none, &__ec) {}
@@ -67,12 +67,12 @@ public:
_LIBCPP_HIDE_FROM_ABI recursive_directory_iterator&
operator=(const recursive_directory_iterator&) = default;
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
recursive_directory_iterator&
operator=(recursive_directory_iterator&& __o) noexcept {
// non-default implementation provided to support self-move assign.
if (this != &__o) {
- __imp_ = _VSTD::move(__o.__imp_);
+ __imp_ = std::move(__o.__imp_);
__rec_ = __o.__rec_;
}
return *this;
@@ -80,22 +80,22 @@ public:
_LIBCPP_HIDE_FROM_ABI ~recursive_directory_iterator() = default;
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
const directory_entry& operator*() const { return __dereference(); }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
const directory_entry* operator->() const { return &__dereference(); }
_LIBCPP_HIDE_FROM_ABI recursive_directory_iterator& operator++() { return __increment(); }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
__dir_element_proxy operator++(int) {
__dir_element_proxy __p(**this);
__increment();
return __p;
}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
recursive_directory_iterator& increment(error_code& __ec) {
return __increment(&__ec);
}
@@ -103,16 +103,16 @@ public:
_LIBCPP_EXPORTED_FROM_ABI directory_options options() const;
_LIBCPP_EXPORTED_FROM_ABI int depth() const;
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
void pop() { __pop(); }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
void pop(error_code& __ec) { __pop(&__ec); }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
bool recursion_pending() const { return __rec_; }
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_HIDE_FROM_ABI
void disable_recursion_pending() { __rec_ = false; }
# if _LIBCPP_STD_VER >= 20
@@ -131,7 +131,7 @@ private:
_LIBCPP_EXPORTED_FROM_ABI recursive_directory_iterator& __increment(error_code* __ec = nullptr);
_LIBCPP_EXPORTED_FROM_ABI void __pop(error_code* __ec = nullptr);
- inline _LIBCPP_INLINE_VISIBILITY friend bool
+ inline _LIBCPP_HIDE_FROM_ABI friend bool
operator==(const recursive_directory_iterator&,
const recursive_directory_iterator&) noexcept;
@@ -140,24 +140,24 @@ private:
bool __rec_;
}; // class recursive_directory_iterator
-inline _LIBCPP_INLINE_VISIBILITY bool
+inline _LIBCPP_HIDE_FROM_ABI bool
operator==(const recursive_directory_iterator& __lhs,
const recursive_directory_iterator& __rhs) noexcept {
return __lhs.__imp_ == __rhs.__imp_;
}
-_LIBCPP_INLINE_VISIBILITY
+_LIBCPP_HIDE_FROM_ABI
inline bool operator!=(const recursive_directory_iterator& __lhs,
const recursive_directory_iterator& __rhs) noexcept {
return !(__lhs == __rhs);
}
// enable recursive_directory_iterator range-based for statements
-inline _LIBCPP_INLINE_VISIBILITY recursive_directory_iterator
+inline _LIBCPP_HIDE_FROM_ABI recursive_directory_iterator
begin(recursive_directory_iterator __iter) noexcept {
return __iter;
}
-inline _LIBCPP_INLINE_VISIBILITY recursive_directory_iterator
+inline _LIBCPP_HIDE_FROM_ABI recursive_directory_iterator
end(recursive_directory_iterator) noexcept {
return recursive_directory_iterator();
}
@@ -170,14 +170,14 @@ _LIBCPP_END_NAMESPACE_FILESYSTEM
template <>
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY
-inline constexpr bool _VSTD::ranges::enable_borrowed_range<_VSTD_FS::recursive_directory_iterator> = true;
+inline constexpr bool std::ranges::enable_borrowed_range<std::filesystem::recursive_directory_iterator> = true;
template <>
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY
-inline constexpr bool _VSTD::ranges::enable_view<_VSTD_FS::recursive_directory_iterator> = true;
+inline constexpr bool std::ranges::enable_view<std::filesystem::recursive_directory_iterator> = true;
#endif // _LIBCPP_STD_VER >= 20
-#endif // !defined(_LIBCPP_CXX03_LANG) && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
+#endif // _LIBCPP_STD_VER >= 17 && !defined(_LIBCPP_HAS_NO_FILESYSTEM)
#endif // _LIBCPP___FILESYSTEM_RECURSIVE_DIRECTORY_ITERATOR_H
diff --git a/libcxx/include/__filesystem/space_info.h b/libcxx/include/__filesystem/space_info.h
index 929f51466424..2e80ae3b2c11 100644
--- a/libcxx/include/__filesystem/space_info.h
+++ b/libcxx/include/__filesystem/space_info.h
@@ -18,7 +18,7 @@
# pragma GCC system_header
#endif
-#ifndef _LIBCPP_CXX03_LANG
+#if _LIBCPP_STD_VER >= 17
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
@@ -34,6 +34,6 @@ struct _LIBCPP_EXPORTED_FROM_ABI space_info {
_LIBCPP_END_NAMESPACE_FILESYSTEM
-#endif // _LIBCPP_CXX03_LANG
+#endif // _LIBCPP_STD_VER >= 17
#endif // _LIBCPP___FILESYSTEM_SPACE_INFO_H
diff --git a/libcxx/include/__filesystem/u8path.h b/libcxx/include/__filesystem/u8path.h
index 90b879aec28e..a79007e969ca 100644
--- a/libcxx/include/__filesystem/u8path.h
+++ b/libcxx/include/__filesystem/u8path.h
@@ -26,15 +26,15 @@
# pragma GCC system_header
#endif
-#ifndef _LIBCPP_CXX03_LANG
+#if _LIBCPP_STD_VER >= 17
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_PUSH
-template <class _InputIt>
-_LIBCPP_INLINE_VISIBILITY _LIBCPP_DEPRECATED_WITH_CHAR8_T
- typename enable_if<__is_pathable<_InputIt>::value, path>::type
+template <class _InputIt, __enable_if_t<__is_pathable<_InputIt>::value, int> = 0>
+_LIBCPP_HIDE_FROM_ABI _LIBCPP_DEPRECATED_WITH_CHAR8_T
+ path
u8path(_InputIt __f, _InputIt __l) {
static_assert(
#ifndef _LIBCPP_HAS_NO_CHAR8_T
@@ -46,7 +46,7 @@ _LIBCPP_INLINE_VISIBILITY _LIBCPP_DEPRECATED_WITH_CHAR8_T
#if defined(_LIBCPP_WIN32API)
string __tmp(__f, __l);
using _CVT = __widen_from_utf8<sizeof(wchar_t) * __CHAR_BIT__>;
- _VSTD::wstring __w;
+ std::wstring __w;
__w.reserve(__tmp.size());
_CVT()(back_inserter(__w), __tmp.data(), __tmp.data() + __tmp.size());
return path(__w);
@@ -56,9 +56,9 @@ _LIBCPP_INLINE_VISIBILITY _LIBCPP_DEPRECATED_WITH_CHAR8_T
}
#if defined(_LIBCPP_WIN32API)
-template <class _InputIt>
-_LIBCPP_INLINE_VISIBILITY _LIBCPP_DEPRECATED_WITH_CHAR8_T
- typename enable_if<__is_pathable<_InputIt>::value, path>::type
+template <class _InputIt, __enable_if_t<__is_pathable<_InputIt>::value, int> = 0>
+_LIBCPP_HIDE_FROM_ABI _LIBCPP_DEPRECATED_WITH_CHAR8_T
+ path
u8path(_InputIt __f, _NullSentinel) {
static_assert(
#ifndef _LIBCPP_HAS_NO_CHAR8_T
@@ -72,16 +72,16 @@ _LIBCPP_INLINE_VISIBILITY _LIBCPP_DEPRECATED_WITH_CHAR8_T
for (; *__f != __sentinel; ++__f)
__tmp.push_back(*__f);
using _CVT = __widen_from_utf8<sizeof(wchar_t) * __CHAR_BIT__>;
- _VSTD::wstring __w;
+ std::wstring __w;
__w.reserve(__tmp.size());
_CVT()(back_inserter(__w), __tmp.data(), __tmp.data() + __tmp.size());
return path(__w);
}
#endif /* _LIBCPP_WIN32API */
-template <class _Source>
-_LIBCPP_INLINE_VISIBILITY _LIBCPP_DEPRECATED_WITH_CHAR8_T
- typename enable_if<__is_pathable<_Source>::value, path>::type
+template <class _Source, __enable_if_t<__is_pathable<_Source>::value, int> = 0>
+_LIBCPP_HIDE_FROM_ABI _LIBCPP_DEPRECATED_WITH_CHAR8_T
+ path
u8path(const _Source& __s) {
static_assert(
#ifndef _LIBCPP_HAS_NO_CHAR8_T
@@ -92,7 +92,7 @@ _LIBCPP_INLINE_VISIBILITY _LIBCPP_DEPRECATED_WITH_CHAR8_T
"'char' or 'char8_t'");
#if defined(_LIBCPP_WIN32API)
using _Traits = __is_pathable<_Source>;
- return u8path(_VSTD::__unwrap_iter(_Traits::__range_begin(__s)), _VSTD::__unwrap_iter(_Traits::__range_end(__s)));
+ return u8path(std::__unwrap_iter(_Traits::__range_begin(__s)), std::__unwrap_iter(_Traits::__range_end(__s)));
#else
return path(__s);
#endif
@@ -102,6 +102,6 @@ _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_POP
_LIBCPP_END_NAMESPACE_FILESYSTEM
-#endif // _LIBCPP_CXX03_LANG
+#endif // _LIBCPP_STD_VER >= 17
#endif // _LIBCPP___FILESYSTEM_U8PATH_H