標準入出力ライブラリで、C++98のころから非推奨だった型の別名と関数の別名が、C++1zで削除されます。
まず、std::ios_baseクラスの以下のメンバ型が削除されます:
namespace std { class ios_base { public: typedef T1 io_state; typedef T2 open_mode; typedef T3 seek_dir; typedef implementation-defined streamoff; typedef implementation-defined streampos; }; }
ios_base::io_stateの代わりにios_base::iostateを使用します。ios_base::open_modeの代わりにios_base::openmodeを使用します。ios_base::seek_dirの代わりにios_base::seekdirを使用します。ios_base::streamoffの代わりに、char_traits<CharT>::off_typeもしくはbasic_ios<CharT>::off_typeを使用します。(<iosfwd>で定義されているstd::streamoffは残ります)ios_base::streamposの代わりに、char_traits<CharT>::pos_typeもしくはbasic_ios<CharT>::pos_typeを使用します。(<iosfwd>で定義されているstd::streamposは残ります)
std::basic_streambufクラスの以下のメンバ関数が削除されます:
namespace std { template <class charT, class traits = char_traits<charT> > class basic_streambuf { public: void stossc(); }; }
このメンバ関数は、同クラスのメンバ関数であるパラメータなしのsbumpc()を呼び出しているだけです。
ios_baseクラスの別名型が削除されることにともない、それらの型をパラメータにとる関数が削除されます。
namespace std { template <class charT, class traits> class basic_ios { public: void clear(io_state state); void setstate(io_state state); void exceptions(io_state); }; template <class charT, class traits = char_traits<charT> > class basic_streambuf { public: pos_type pubseekoff(off_type off, ios_base::seek_dir way, ios_base::open_mode which = ios_base::in | ios_base::out); pos_type pubseekpos(pos_type sp, ios_base::open_mode which); }; template <class charT, class traits = char_traits<charT> > class basic_filebuf : public basic_streambuf<charT,traits> { public: basic_filebuf<charT,traits>* open(const char* s, ios_base::open_mode mode); }; template <class charT, class traits = char_traits<charT> > class basic_ifstream : public basic_istream<charT,traits> { public: void open(const char* s, ios_base::open_mode mode); }; template <class charT, class traits = char_traits<charT> > class basic_ofstream : public basic_ostream<charT,traits> { public: void open(const char* s, ios_base::open_mode mode); }; }
io_stateをとるメンバ関数の代わりとして、iostateをとるメンバ関数があります。open_modeをとるメンバ関数の代わりとして、openmodeをとるメンバ関数があります。seek_dirをとるメンバ関数の代わりとして、seekdirをとるメンバ関数があります。
参照
お断り
この記事の内容は、C++1zが正式リリースされる際には変更される可能性があります。正式リリース後には、C++日本語リファレンスサイトcpprefjpの以下の階層の下に解説ページを用意する予定です。