其他分享
首页 > 其他分享> > c – 为什么`std :: stringstream :: stringstream(std :: string \u0026\u0026)`不存在?

c – 为什么`std :: stringstream :: stringstream(std :: string \u0026\u0026)`不存在?

作者:互联网

我希望stringstream有一个构造函数可以从字符串&&中窃取它的初始内容. STL中通常不存在这样的种间“移动构造函数”吗?如果没有,为什么不呢?

解决方法:

有历史,这是令人失望的.但也是一个看起来光明的未来.

当移动语义进入C 11时,它是巨大的,有争议的,并且势不可挡.我希望能够将字符串移入和移出stringstream.然而,当时的政治要求内部商店不必是basic_string< charT>.例如,内部存储可以是向量.而且没有能力用分配器来控制事物.无论如何,需要在C 11时间框架中得到认可,但它只是一座过于遥远的桥梁.

幸运的是,Peter Sommerlad已经用P0408来弥补这个缺点.这个提议增加了你所寻求的功能,希望对于C 20来说,但这还不确定.它已经成功通过了LEWG,现在就在LWG的办公桌上.他们本月在拉珀斯维尔没有达到这个目的,纯粹是因为时间表过载.我希望它将通过LWG,以及全体委员会投票.它肯定会得到我的投票.

标签:stringstream,c,rvalue-reference,move-semantics,c17
来源: https://codeday.me/bug/20190910/1801396.html