diff options
author | mikhnenko <[email protected]> | 2025-04-19 17:15:47 +0300 |
---|---|---|
committer | mikhnenko <[email protected]> | 2025-04-19 17:32:41 +0300 |
commit | 8a4ae1910b2babbc014f5d5ff97c2245803d6d1a (patch) | |
tree | 9c8728b4ad4226ef084d46a6d6cde7b5ae46e4d5 /contrib/libs/cxxsupp/libcxx/include/fstream | |
parent | 605a8a3075d2116bf0c742d7ae889ba14b801a8e (diff) |
Update libcxx to 20 Sep 2024
TRIVIAL
commit_hash:04d8ae0a53854a1ed8cdea2e191c8dfa1248c023
Diffstat (limited to 'contrib/libs/cxxsupp/libcxx/include/fstream')
-rw-r--r-- | contrib/libs/cxxsupp/libcxx/include/fstream | 53 |
1 files changed, 32 insertions, 21 deletions
diff --git a/contrib/libs/cxxsupp/libcxx/include/fstream b/contrib/libs/cxxsupp/libcxx/include/fstream index ab5ebf8e2c3..de7c614836b 100644 --- a/contrib/libs/cxxsupp/libcxx/include/fstream +++ b/contrib/libs/cxxsupp/libcxx/include/fstream @@ -189,15 +189,16 @@ typedef basic_fstream<wchar_t> wfstream; #include <__algorithm/max.h> #include <__assert> #include <__config> +#include <__filesystem/path.h> #include <__fwd/fstream.h> #include <__locale> +#include <__memory/addressof.h> #include <__type_traits/enable_if.h> #include <__type_traits/is_same.h> #include <__utility/move.h> #include <__utility/swap.h> #include <__utility/unreachable.h> #include <cstdio> -#include <filesystem> #include <istream> #include <ostream> #include <typeinfo> @@ -214,7 +215,7 @@ _LIBCPP_PUSH_MACROS # define _LIBCPP_HAS_NO_OFF_T_FUNCTIONS #endif -#if !defined(_LIBCPP_HAS_NO_FILESYSTEM) +#if !defined(_LIBCPP_HAS_NO_FILESYSTEM) && !defined(_LIBCPP_HAS_NO_LOCALIZATION) _LIBCPP_BEGIN_NAMESPACE_STD @@ -1136,11 +1137,12 @@ private: }; template <class _CharT, class _Traits> -inline basic_ifstream<_CharT, _Traits>::basic_ifstream() : basic_istream<char_type, traits_type>(&__sb_) {} +inline basic_ifstream<_CharT, _Traits>::basic_ifstream() + : basic_istream<char_type, traits_type>(std::addressof(__sb_)) {} template <class _CharT, class _Traits> inline basic_ifstream<_CharT, _Traits>::basic_ifstream(const char* __s, ios_base::openmode __mode) - : basic_istream<char_type, traits_type>(&__sb_) { + : basic_istream<char_type, traits_type>(std::addressof(__sb_)) { if (__sb_.open(__s, __mode | ios_base::in) == nullptr) this->setstate(ios_base::failbit); } @@ -1148,15 +1150,16 @@ inline basic_ifstream<_CharT, _Traits>::basic_ifstream(const char* __s, ios_base # ifdef _LIBCPP_HAS_OPEN_WITH_WCHAR template <class _CharT, class _Traits> inline basic_ifstream<_CharT, _Traits>::basic_ifstream(const wchar_t* __s, ios_base::openmode __mode) - : basic_istream<char_type, traits_type>(&__sb_) { + : basic_istream<char_type, traits_type>(std::addressof(__sb_)) { if (__sb_.open(__s, __mode | ios_base::in) == nullptr) this->setstate(ios_base::failbit); } # endif +// extension template <class _CharT, class _Traits> inline basic_ifstream<_CharT, _Traits>::basic_ifstream(const string& __s, ios_base::openmode __mode) - : basic_istream<char_type, traits_type>(&__sb_) { + : basic_istream<char_type, traits_type>(std::addressof(__sb_)) { if (__sb_.open(__s, __mode | ios_base::in) == nullptr) this->setstate(ios_base::failbit); } @@ -1164,7 +1167,7 @@ inline basic_ifstream<_CharT, _Traits>::basic_ifstream(const string& __s, ios_ba template <class _CharT, class _Traits> inline basic_ifstream<_CharT, _Traits>::basic_ifstream(basic_ifstream&& __rhs) : basic_istream<char_type, traits_type>(std::move(__rhs)), __sb_(std::move(__rhs.__sb_)) { - this->set_rdbuf(&__sb_); + this->set_rdbuf(std::addressof(__sb_)); } template <class _CharT, class _Traits> @@ -1187,7 +1190,7 @@ inline _LIBCPP_HIDE_FROM_ABI void swap(basic_ifstream<_CharT, _Traits>& __x, bas template <class _CharT, class _Traits> inline basic_filebuf<_CharT, _Traits>* basic_ifstream<_CharT, _Traits>::rdbuf() const { - return const_cast<basic_filebuf<char_type, traits_type>*>(&__sb_); + return const_cast<basic_filebuf<char_type, traits_type>*>(std::addressof(__sb_)); } template <class _CharT, class _Traits> @@ -1293,11 +1296,12 @@ private: }; template <class _CharT, class _Traits> -inline basic_ofstream<_CharT, _Traits>::basic_ofstream() : basic_ostream<char_type, traits_type>(&__sb_) {} +inline basic_ofstream<_CharT, _Traits>::basic_ofstream() + : basic_ostream<char_type, traits_type>(std::addressof(__sb_)) {} template <class _CharT, class _Traits> inline basic_ofstream<_CharT, _Traits>::basic_ofstream(const char* __s, ios_base::openmode __mode) - : basic_ostream<char_type, traits_type>(&__sb_) { + : basic_ostream<char_type, traits_type>(std::addressof(__sb_)) { if (__sb_.open(__s, __mode | ios_base::out) == nullptr) this->setstate(ios_base::failbit); } @@ -1305,15 +1309,16 @@ inline basic_ofstream<_CharT, _Traits>::basic_ofstream(const char* __s, ios_base # ifdef _LIBCPP_HAS_OPEN_WITH_WCHAR template <class _CharT, class _Traits> inline basic_ofstream<_CharT, _Traits>::basic_ofstream(const wchar_t* __s, ios_base::openmode __mode) - : basic_ostream<char_type, traits_type>(&__sb_) { + : basic_ostream<char_type, traits_type>(std::addressof(__sb_)) { if (__sb_.open(__s, __mode | ios_base::out) == nullptr) this->setstate(ios_base::failbit); } # endif +// extension template <class _CharT, class _Traits> inline basic_ofstream<_CharT, _Traits>::basic_ofstream(const string& __s, ios_base::openmode __mode) - : basic_ostream<char_type, traits_type>(&__sb_) { + : basic_ostream<char_type, traits_type>(std::addressof(__sb_)) { if (__sb_.open(__s, __mode | ios_base::out) == nullptr) this->setstate(ios_base::failbit); } @@ -1321,7 +1326,7 @@ inline basic_ofstream<_CharT, _Traits>::basic_ofstream(const string& __s, ios_ba template <class _CharT, class _Traits> inline basic_ofstream<_CharT, _Traits>::basic_ofstream(basic_ofstream&& __rhs) : basic_ostream<char_type, traits_type>(std::move(__rhs)), __sb_(std::move(__rhs.__sb_)) { - this->set_rdbuf(&__sb_); + this->set_rdbuf(std::addressof(__sb_)); } template <class _CharT, class _Traits> @@ -1344,7 +1349,7 @@ inline _LIBCPP_HIDE_FROM_ABI void swap(basic_ofstream<_CharT, _Traits>& __x, bas template <class _CharT, class _Traits> inline basic_filebuf<_CharT, _Traits>* basic_ofstream<_CharT, _Traits>::rdbuf() const { - return const_cast<basic_filebuf<char_type, traits_type>*>(&__sb_); + return const_cast<basic_filebuf<char_type, traits_type>*>(std::addressof(__sb_)); } template <class _CharT, class _Traits> @@ -1454,11 +1459,12 @@ private: }; template <class _CharT, class _Traits> -inline basic_fstream<_CharT, _Traits>::basic_fstream() : basic_iostream<char_type, traits_type>(&__sb_) {} +inline basic_fstream<_CharT, _Traits>::basic_fstream() + : basic_iostream<char_type, traits_type>(std::addressof(__sb_)) {} template <class _CharT, class _Traits> inline basic_fstream<_CharT, _Traits>::basic_fstream(const char* __s, ios_base::openmode __mode) - : basic_iostream<char_type, traits_type>(&__sb_) { + : basic_iostream<char_type, traits_type>(std::addressof(__sb_)) { if (__sb_.open(__s, __mode) == nullptr) this->setstate(ios_base::failbit); } @@ -1466,7 +1472,7 @@ inline basic_fstream<_CharT, _Traits>::basic_fstream(const char* __s, ios_base:: # ifdef _LIBCPP_HAS_OPEN_WITH_WCHAR template <class _CharT, class _Traits> inline basic_fstream<_CharT, _Traits>::basic_fstream(const wchar_t* __s, ios_base::openmode __mode) - : basic_iostream<char_type, traits_type>(&__sb_) { + : basic_iostream<char_type, traits_type>(std::addressof(__sb_)) { if (__sb_.open(__s, __mode) == nullptr) this->setstate(ios_base::failbit); } @@ -1474,15 +1480,16 @@ inline basic_fstream<_CharT, _Traits>::basic_fstream(const wchar_t* __s, ios_bas template <class _CharT, class _Traits> inline basic_fstream<_CharT, _Traits>::basic_fstream(const string& __s, ios_base::openmode __mode) - : basic_iostream<char_type, traits_type>(&__sb_) { + : basic_iostream<char_type, traits_type>(std::addressof(__sb_)) { if (__sb_.open(__s, __mode) == nullptr) this->setstate(ios_base::failbit); } +// extension template <class _CharT, class _Traits> inline basic_fstream<_CharT, _Traits>::basic_fstream(basic_fstream&& __rhs) : basic_iostream<char_type, traits_type>(std::move(__rhs)), __sb_(std::move(__rhs.__sb_)) { - this->set_rdbuf(&__sb_); + this->set_rdbuf(std::addressof(__sb_)); } template <class _CharT, class _Traits> @@ -1505,7 +1512,7 @@ inline _LIBCPP_HIDE_FROM_ABI void swap(basic_fstream<_CharT, _Traits>& __x, basi template <class _CharT, class _Traits> inline basic_filebuf<_CharT, _Traits>* basic_fstream<_CharT, _Traits>::rdbuf() const { - return const_cast<basic_filebuf<char_type, traits_type>*>(&__sb_); + return const_cast<basic_filebuf<char_type, traits_type>*>(std::addressof(__sb_)); } template <class _CharT, class _Traits> @@ -1553,7 +1560,7 @@ extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_filebuf<char>; _LIBCPP_END_NAMESPACE_STD -#endif // _LIBCPP_HAS_NO_FILESYSTEM +#endif // !defined(_LIBCPP_HAS_NO_FILESYSTEM) && !defined(_LIBCPP_HAS_NO_LOCALIZATION) _LIBCPP_POP_MACROS @@ -1569,4 +1576,8 @@ _LIBCPP_POP_MACROS # include <type_traits> #endif +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 23 +# include <filesystem> +#endif + #endif // _LIBCPP_FSTREAM |