basic_iostream和iostream之间的区别?

str*_*013 -1 c++ io templates stream

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

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

从我读到的是basic_iostream是一个模板类,iostream是basic_iostream的实例,但这是什么意思?

iostream不是像cout,cin和cerr这样的对象,那么它是如何实例化的呢?

Pet*_*ker 5

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

typedef basic_iostream<char, char_traits<char>> iostream;
Run Code Online (Sandbox Code Playgroud)

这定义iostream为.的同义词basic_iostream<char, char_traits<char>>.当你写的东西像

std::iostream my_stream;
Run Code Online (Sandbox Code Playgroud)

实际上,你是在写作

std::basic_iostream<char, std::char_traits<char>> my_stream.
Run Code Online (Sandbox Code Playgroud)