[libcxx-commits] [libcxx] [libc++] Implement LWG3430 disallow implicit conversion of the source arguments to `std::filesystem::path` when constructing `std::basic_*fstream` (PR #85079)

Nico Weber via libcxx-commits libcxx-commits at lists.llvm.org
Sun Apr 14 11:14:40 PDT 2024


================
@@ -158,8 +158,8 @@ public:
     basic_fstream();
     explicit basic_fstream(const char* s, ios_base::openmode mode = ios_base::in|ios_base::out);
     explicit basic_fstream(const string& s, ios_base::openmode mode = ios_base::in|ios_base::out);
-    explicit basic_fstream(const filesystem::path& p,
-                           ios_base::openmode mode = ios_base::in|ios_base::out); C++17
+    template<class T>
+    explicit basic_fstream(const T& s, ios_base::openmode mode = ios_base::in | ios_base::out); // Since C++17
----------------
nico wrote:

It looks like it's just one file so far (*). I got a bit confused because the wchar_t* ctor is missing from the synopsis comment at the top. So all good.

*: But actually rolling this in is blocked on https://github.com/llvm/llvm-project/pull/86843#issuecomment-2051880399 , so not 100% sure yet. But very likely that's all.

https://github.com/llvm/llvm-project/pull/85079


More information about the libcxx-commits mailing list