@@ -191,6 +191,7 @@ typedef basic_fstream<wchar_t> wfstream;
191191#include < __cxx03/__config>
192192#include < __cxx03/__fwd/fstream.h>
193193#include < __cxx03/__locale>
194+ #include < __cxx03/__memory/addressof.h>
194195#include < __cxx03/__type_traits/enable_if.h>
195196#include < __cxx03/__type_traits/is_same.h>
196197#include < __cxx03/__utility/move.h>
@@ -1062,35 +1063,37 @@ private:
10621063};
10631064
10641065template <class _CharT , class _Traits >
1065- inline basic_ifstream<_CharT, _Traits>::basic_ifstream () : basic_istream<char_type, traits_type>(&__sb_) {}
1066+ inline basic_ifstream<_CharT, _Traits>::basic_ifstream ()
1067+ : basic_istream<char_type, traits_type>(std::addressof (__sb_)) {}
10661068
10671069template <class _CharT , class _Traits >
10681070inline basic_ifstream<_CharT, _Traits>::basic_ifstream (const char * __s, ios_base::openmode __mode)
1069- : basic_istream<char_type, traits_type>(& __sb_) {
1071+ : basic_istream<char_type, traits_type>(std::addressof ( __sb_) ) {
10701072 if (__sb_.open (__s, __mode | ios_base::in) == nullptr )
10711073 this ->setstate (ios_base::failbit);
10721074}
10731075
10741076# ifdef _LIBCPP_HAS_OPEN_WITH_WCHAR
10751077template <class _CharT , class _Traits >
10761078inline basic_ifstream<_CharT, _Traits>::basic_ifstream (const wchar_t * __s, ios_base::openmode __mode)
1077- : basic_istream<char_type, traits_type>(& __sb_) {
1079+ : basic_istream<char_type, traits_type>(std::addressof ( __sb_) ) {
10781080 if (__sb_.open (__s, __mode | ios_base::in) == nullptr )
10791081 this ->setstate (ios_base::failbit);
10801082}
10811083# endif
10821084
1085+ // extension
10831086template <class _CharT , class _Traits >
10841087inline basic_ifstream<_CharT, _Traits>::basic_ifstream (const string& __s, ios_base::openmode __mode)
1085- : basic_istream<char_type, traits_type>(& __sb_) {
1088+ : basic_istream<char_type, traits_type>(std::addressof ( __sb_) ) {
10861089 if (__sb_.open (__s, __mode | ios_base::in) == nullptr )
10871090 this ->setstate (ios_base::failbit);
10881091}
10891092
10901093template <class _CharT , class _Traits >
10911094inline basic_ifstream<_CharT, _Traits>::basic_ifstream (basic_ifstream&& __rhs)
10921095 : basic_istream<char_type, traits_type>(std::move (__rhs)), __sb_ (std::move (__rhs.__sb_ )) {
1093- this ->set_rdbuf (& __sb_);
1096+ this ->set_rdbuf (std::addressof ( __sb_) );
10941097}
10951098
10961099template <class _CharT , class _Traits >
@@ -1113,7 +1116,7 @@ inline _LIBCPP_HIDE_FROM_ABI void swap(basic_ifstream<_CharT, _Traits>& __x, bas
11131116
11141117template <class _CharT , class _Traits >
11151118inline basic_filebuf<_CharT, _Traits>* basic_ifstream<_CharT, _Traits>::rdbuf () const {
1116- return const_cast <basic_filebuf<char_type, traits_type>*>(& __sb_);
1119+ return const_cast <basic_filebuf<char_type, traits_type>*>(std::addressof ( __sb_) );
11171120}
11181121
11191122template <class _CharT , class _Traits >
@@ -1199,35 +1202,37 @@ private:
11991202};
12001203
12011204template <class _CharT , class _Traits >
1202- inline basic_ofstream<_CharT, _Traits>::basic_ofstream () : basic_ostream<char_type, traits_type>(&__sb_) {}
1205+ inline basic_ofstream<_CharT, _Traits>::basic_ofstream ()
1206+ : basic_ostream<char_type, traits_type>(std::addressof (__sb_)) {}
12031207
12041208template <class _CharT , class _Traits >
12051209inline basic_ofstream<_CharT, _Traits>::basic_ofstream (const char * __s, ios_base::openmode __mode)
1206- : basic_ostream<char_type, traits_type>(& __sb_) {
1210+ : basic_ostream<char_type, traits_type>(std::addressof ( __sb_) ) {
12071211 if (__sb_.open (__s, __mode | ios_base::out) == nullptr )
12081212 this ->setstate (ios_base::failbit);
12091213}
12101214
12111215# ifdef _LIBCPP_HAS_OPEN_WITH_WCHAR
12121216template <class _CharT , class _Traits >
12131217inline basic_ofstream<_CharT, _Traits>::basic_ofstream (const wchar_t * __s, ios_base::openmode __mode)
1214- : basic_ostream<char_type, traits_type>(& __sb_) {
1218+ : basic_ostream<char_type, traits_type>(std::addressof ( __sb_) ) {
12151219 if (__sb_.open (__s, __mode | ios_base::out) == nullptr )
12161220 this ->setstate (ios_base::failbit);
12171221}
12181222# endif
12191223
1224+ // extension
12201225template <class _CharT , class _Traits >
12211226inline basic_ofstream<_CharT, _Traits>::basic_ofstream (const string& __s, ios_base::openmode __mode)
1222- : basic_ostream<char_type, traits_type>(& __sb_) {
1227+ : basic_ostream<char_type, traits_type>(std::addressof ( __sb_) ) {
12231228 if (__sb_.open (__s, __mode | ios_base::out) == nullptr )
12241229 this ->setstate (ios_base::failbit);
12251230}
12261231
12271232template <class _CharT , class _Traits >
12281233inline basic_ofstream<_CharT, _Traits>::basic_ofstream (basic_ofstream&& __rhs)
12291234 : basic_ostream<char_type, traits_type>(std::move (__rhs)), __sb_ (std::move (__rhs.__sb_ )) {
1230- this ->set_rdbuf (& __sb_);
1235+ this ->set_rdbuf (std::addressof ( __sb_) );
12311236}
12321237
12331238template <class _CharT , class _Traits >
@@ -1250,7 +1255,7 @@ inline _LIBCPP_HIDE_FROM_ABI void swap(basic_ofstream<_CharT, _Traits>& __x, bas
12501255
12511256template <class _CharT , class _Traits >
12521257inline basic_filebuf<_CharT, _Traits>* basic_ofstream<_CharT, _Traits>::rdbuf () const {
1253- return const_cast <basic_filebuf<char_type, traits_type>*>(& __sb_);
1258+ return const_cast <basic_filebuf<char_type, traits_type>*>(std::addressof ( __sb_) );
12541259}
12551260
12561261template <class _CharT , class _Traits >
@@ -1340,35 +1345,37 @@ private:
13401345};
13411346
13421347template <class _CharT , class _Traits >
1343- inline basic_fstream<_CharT, _Traits>::basic_fstream () : basic_iostream<char_type, traits_type>(&__sb_) {}
1348+ inline basic_fstream<_CharT, _Traits>::basic_fstream ()
1349+ : basic_iostream<char_type, traits_type>(std::addressof (__sb_)) {}
13441350
13451351template <class _CharT , class _Traits >
13461352inline basic_fstream<_CharT, _Traits>::basic_fstream (const char * __s, ios_base::openmode __mode)
1347- : basic_iostream<char_type, traits_type>(& __sb_) {
1353+ : basic_iostream<char_type, traits_type>(std::addressof ( __sb_) ) {
13481354 if (__sb_.open (__s, __mode) == nullptr )
13491355 this ->setstate (ios_base::failbit);
13501356}
13511357
13521358# ifdef _LIBCPP_HAS_OPEN_WITH_WCHAR
13531359template <class _CharT , class _Traits >
13541360inline basic_fstream<_CharT, _Traits>::basic_fstream (const wchar_t * __s, ios_base::openmode __mode)
1355- : basic_iostream<char_type, traits_type>(& __sb_) {
1361+ : basic_iostream<char_type, traits_type>(std::addressof ( __sb_) ) {
13561362 if (__sb_.open (__s, __mode) == nullptr )
13571363 this ->setstate (ios_base::failbit);
13581364}
13591365# endif
13601366
13611367template <class _CharT , class _Traits >
13621368inline basic_fstream<_CharT, _Traits>::basic_fstream (const string& __s, ios_base::openmode __mode)
1363- : basic_iostream<char_type, traits_type>(& __sb_) {
1369+ : basic_iostream<char_type, traits_type>(std::addressof ( __sb_) ) {
13641370 if (__sb_.open (__s, __mode) == nullptr )
13651371 this ->setstate (ios_base::failbit);
13661372}
13671373
1374+ // extension
13681375template <class _CharT , class _Traits >
13691376inline basic_fstream<_CharT, _Traits>::basic_fstream (basic_fstream&& __rhs)
13701377 : basic_iostream<char_type, traits_type>(std::move (__rhs)), __sb_ (std::move (__rhs.__sb_ )) {
1371- this ->set_rdbuf (& __sb_);
1378+ this ->set_rdbuf (std::addressof ( __sb_) );
13721379}
13731380
13741381template <class _CharT , class _Traits >
@@ -1391,7 +1398,7 @@ inline _LIBCPP_HIDE_FROM_ABI void swap(basic_fstream<_CharT, _Traits>& __x, basi
13911398
13921399template <class _CharT , class _Traits >
13931400inline basic_filebuf<_CharT, _Traits>* basic_fstream<_CharT, _Traits>::rdbuf () const {
1394- return const_cast <basic_filebuf<char_type, traits_type>*>(& __sb_);
1401+ return const_cast <basic_filebuf<char_type, traits_type>*>(std::addressof ( __sb_) );
13951402}
13961403
13971404template <class _CharT , class _Traits >
0 commit comments