就在我以为我了解 C++11 中 iostream 的多遍移动构造时(感谢https://stackoverflow.com/a/8156356/273767的介绍),我遇到了这个问题:
§27.7.2.5.1[iostream.cons]/3
basic_iostream(basic_iostream&& rhs);
3
basic_istream
效果:通过使用 构造基类,从右值 rhs 移动构造move(rhs)
。
那么另一个基地会发生什么basic_ostream
?
我看到 libc++ 提供了std::basic_ostream
一个受保护的默认构造函数,它在此处被调用(并且与 §27.7.2.5.1/1 的字母相矛盾,在basic_iostream 的普通构造函数中),并且什么也不做。这就是它应该的样子吗?