有没有图书馆提供现成的建筑藏品
Are there any libraries that provide in-place constructing collections?
令人难以置信的是,标准库中没有任何东西允许存储不可复制的对象——我至少遇到过这样的情况:复制一直没有任何意义(boost信号、opengl对象等(,但另一方面,默认构建是一种合理的操作。出于某种原因,默认答案似乎是使用指针而不是对象。这只会通过额外的间接寻址和引用计数引入毫无意义的开销(因为unique_ptr也是不可压缩的(,而且使用起来有些尴尬。
话虽如此,是否存在这样的替代方案?
从C++11开始,大多数(如果不是全部的话(容器都不要求它们的元素是可复制的。例如,vector只要求元素是可移动的,而其他容器(deque、*list、*map、set(没有可复制/可移动的元素要求。您需要默认构造元素,或者使用template方法来创建它们。当然,如果您调用一个需要复制/移动的操作,那么您的类型必须支持它,但仅仅将元素存储在容器中并不要求它们是可复制的。
相关文章:
- 建筑 qtconnectivity bluez 缺失
- 建筑x86_64的未定义符号:"vtkDebugLeaksManager::vtkDebugLeaksManager()",引用自:
- Qt Creator项目打破:"找不到建筑x86_64符号"
- C++ 建筑x86_64的未定义符号(类似)
- 建筑x86_64的未定义符号 (curlpp)
- C 基本建筑设计
- 指针和建筑的大小
- VS 远程建筑:"Makefile.Targets error: Cannot copy file remotely to directory"
- 建筑x86_64的未定义符号 ->建筑x86_64找不到的符号
- 建筑x86_64的未定义符号 - 如何查找丢失的文件
- Aruco建筑项目失败
- 凉亭ROS插件出错:建筑x86_64的未定义符号
- 哈佛建筑图到HLL
- 未定义的建筑符号,尝试了i386和其他符号
- 用Mac OS X上的其他编译器使用不同的编译器进行建筑提升
- 建筑Qt静态,找不到MinGW
- 加速C++:建筑x86_64的未定义符号
- 建筑x86_64的未定义符号:链接错误
- 发布建筑jnativehook
- 有没有图书馆提供现成的建筑藏品