bil*_*llz 17 c++ iterator move-semantics c++11
在这个问题中讨论了什么时候在C++ 11中创建一个不可移动的类型,我发现Scott Meyers在comp.std.c ++上有类似的问题,其中列出的类类型下面的SG在C++ 11中不可移动.
问题是为什么all iterators / iterator adaptors不能移动?
Pot*_*ter 14
该标准在批准标准之前一年就过时了.海报是DanielKrügler,一个活跃的委员会成员,这是一个政治游说:
这些都是不可动的,可能是偶然的,因为隐含生成的移动操作的规则在匹兹堡会议上得到澄清.一般的图书馆问题已经打开
http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#1331
应对图书馆缺乏移动支持.请务必联系您的国家机构代表,因为我很遗憾这个问题不足以取代国家机构对FCD的评论.
换句话说,所有那些不可移动的类型都是标准的一个显示错误,他希望Usenet受众中的读者要求在标准成为正式之前解决问题.
该缺陷已移至 "已关闭"列表.决议是(为方便起见提供链接):
查看规范的库部分,并合并新添加的核心功能移动特殊成员功能(N3044).
由于N3044是一种大量的材料,因此很容易理解为什么这种基本功能必不可少.
迭代器,以及其他任何简单的值语义喜欢std::duration和std::time_point,当然是可移动的.正如其他人所提到的那样,可复制性意味着可移动性,如果不是,语言就会被打破.这个帖子当时没有错; 相反,它正在争论未完成语言的破碎.
MSa*_*ers 10
我认为你包括:"在不可移动类型列表中实现移动为普通复制的类"..迭代器被认为是轻量级对象,复制起来很便宜.为他们强制使用移动运算符是没有意义的.例如,std::vector<T>::iterator基本上只是一个包装T*,复制它们就像移动一样便宜.
| 归档时间: |
|
| 查看次数: |
788 次 |
| 最近记录: |