diff --git a/libcxx/docs/Status/Cxx17Issues.csv b/libcxx/docs/Status/Cxx17Issues.csv --- a/libcxx/docs/Status/Cxx17Issues.csv +++ b/libcxx/docs/Status/Cxx17Issues.csv @@ -315,6 +315,4 @@ "","","","","" "`2901 `__","Variants cannot properly support allocators","Toronto","|Complete|","" "`2955 `__","``to_chars / from_chars``\ depend on ``std::string``\ ","Toronto","Resolved by `P0682R1 `__","" -"`2956 `__","``filesystem::canonical()``\ still defined in terms of ``absolute(p, base)``\ ","Toronto","|Complete|","" -"","","","","" -"`3657 `__","``std::hash`` is not enabled","","|Complete|","" \ No newline at end of file +"`2956 `__","``filesystem::canonical()``\ still defined in terms of ``absolute(p, base)``\ ","Toronto","|Complete|","" \ No newline at end of file diff --git a/libcxx/docs/Status/Cxx2bIssues.csv b/libcxx/docs/Status/Cxx2bIssues.csv --- a/libcxx/docs/Status/Cxx2bIssues.csv +++ b/libcxx/docs/Status/Cxx2bIssues.csv @@ -155,7 +155,7 @@ "`3649 `__","[fund.ts.v2] Reinstate and bump ``__cpp_lib_experimental_memory_resource`` feature test macro","February 2022","","" "`3650 `__","Are ``std::basic_string`` 's ``iterator`` and ``const_iterator`` constexpr iterators?","February 2022","|Nothing to do|","" "`3654 `__","``basic_format_context::arg(size_t)`` should be ``noexcept`` ","February 2022","|Complete|","15.0","|format|" -"`3657 `__","``std::hash`` is not enabled","February 2022","","" +"`3657 `__","``std::hash`` is not enabled","February 2022","|Complete|","15.0","|filesystem|" "`3660 `__","``iterator_traits::pointer`` should conform to ยง[iterator.traits]","February 2022","|Complete|","14.0" "`3661 `__","``constinit atomic> a(nullptr);`` should work","February 2022","","" "","","","","" diff --git a/libcxx/include/__filesystem/path.h b/libcxx/include/__filesystem/path.h --- a/libcxx/include/__filesystem/path.h +++ b/libcxx/include/__filesystem/path.h @@ -1019,21 +1019,17 @@ _LIBCPP_END_NAMESPACE_FILESYSTEM -_LIBCPP_AVAILABILITY_FILESYSTEM_PUSH - _LIBCPP_BEGIN_NAMESPACE_STD template <> -struct _LIBCPP_TEMPLATE_VIS hash<_VSTD_FS ::path> : public unary_function<_VSTD_FS ::path, size_t> { +struct _LIBCPP_TEMPLATE_VIS hash<_VSTD_FS ::path> { - _LIBCPP_INLINE_VISIBILITY - size_t operator()(const _VSTD_FS ::path& __val) const _NOEXCEPT { return _VSTD_FS ::hash_value(__val); } + _LIBCPP_HIDE_FROM_ABI + size_t operator()(const _VSTD_FS ::path& __val) const noexcept { return _VSTD_FS ::hash_value(__val); } }; _LIBCPP_END_NAMESPACE_STD -_LIBCPP_AVAILABILITY_FILESYSTEM_POP - #endif // _LIBCPP_CXX03_LANG #endif // _LIBCPP___FILESYSTEM_PATH_H diff --git a/libcxx/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp b/libcxx/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp --- a/libcxx/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp +++ b/libcxx/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp @@ -9,7 +9,6 @@ // UNSUPPORTED: c++03 // -// // class path @@ -28,12 +27,12 @@ // // template // struct hash -// : public unary_function // { // size_t operator()(T val) const; // }; #include "filesystem_include.h" + #include #include #include