根据libstdc++ c++11 状态页面,流缓冲区被标记为已完成。然而查看gcc 4.8附带的<streambuf>时,构造函数和复制构造函数是private(第799行)。根据§27.6.3,这些应该是protected的,在__cplusplus >= 201103L时更改它们是否会导致其他问题?它确实提到了DR 50,如果有的话,那会引起什么问题?
看起来这是状态页面文档中的一个Bug。 DR 50已经是过去时了,C++11标准指定了复制操作的语义。 不仅仅是让libstdc++现有的函数变成protected那么简单:赋值运算符什么也没做,需要工作。但我看不出它会导致鼻妖问题,所以如果您提交一个Bugzilla报告提醒我们,问题会得到解决。