basic_iostream和iostream之间的区别?

时间:2018-07-21 18:37:41

标签: c++ templates io stream

在发布此问题之前,我已经进行了研究,并确保没有提出类似的问题。

我正在阅读有关C ++中流的这篇文章http://www.ntu.edu.sg/home/ehchua/programming/cpp/cp10_io.html,在链接中的蓝色图表中我注意到蓝色的是basic_iostream,绿色下面的是iostream,basic_ifstream和ifstream也是这样。 ,

据我了解,basic_iostream是模板类,iostream是basic_iostream的实例化,但这是什么意思?

iostream不是cout,cin和cerr之类的对象,那么它如何实例化?

1 个答案:

答案 0 :(得分:5)

在命名空间std中有一个typedef:

typedef basic_iostream<char, char_traits<char>> iostream;

这将iostream定义为basic_iostream<char, char_traits<char>>的同义词。当你写类似

std::iostream my_stream;

您实际上是在写作

std::basic_iostream<char, std::char_traits<char>> my_stream.