gpt4 book ai didi

c++ - boost::scoped_ptr 和 C++ 中的 STL

转载 作者:行者123 更新时间:2023-11-30 01:58:51 26 4
gpt4 key购买 nike

我正在阅读有关 boost 智能指针的内容,我无法理解的一件事是为什么 boost::scoped_ptr 不能与 STL 容器一起使用?我读过它是不可复制的,但这到底是什么意思,为什么 STL 需要它?

最佳答案

一些容器操作,比如std::vector的构造函数

vector(size_type n, const T& value, const Allocator& = Allocator());

std::vector::resize , 要求 TCopyInsertable .这要求 vector 能够调用 T的复制构造函数。所以你不能构造一个 std::vector<boost::scoped_ptr<U>>使用此构造函数。

C++11之前,对T的要求更严格。自最新标准以来,要求是针对每个容器操作量身定制的,而不是针对整个容器。所以可能有很多情况你可以使用 boost::scoped_ptrs 的 vector 。 .

关于c++ - boost::scoped_ptr 和 C++ 中的 STL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16757183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com