This test fails on both MS STL and libstdc++, with errors like these:
error: use of overloaded operator '=' is ambiguous (with operand types 'std::filesystem::path' and 'void')
p = {}; ~ ^ ~~
note: candidate function
path& operator=(path&&) noexcept = default;
note: candidate function
path& operator=(const path&) = default;
note: candidate function
path& operator=(string_type&& _Source) noexcept /* strengthened */ {
I'm not really familiar with these bits of modern C++ though to see what differs to libc++'s header, where this test succeeds, and whether that aspect is mandated by the standard though.