標準入出力ライブラリで、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);
};
}
参照
お断り
この記事の内容は、C++1zが正式リリースされる際には変更される可能性があります。正式リリース後には、C++日本語リファレンスサイトcpprefjpの以下の階層の下に解説ページを用意する予定です。