【发布时间】:2021-03-18 19:58:29
【问题描述】:
考虑以下代码:
class C
{
public:
C(int &a):_a(a){}
private:
int &_a;
};
由于对 _a 的引用,该对象不能作为值包含在 STL 容器中。 由于此引用,无法将默认构造函数添加到此类。
有没有办法让这个对象适应 STL 容器而不改变对指针的引用?
理想情况下,我想我想为它使用某种 std::reference_wrapper,但我不能,因为它本身不是默认可构造的。
【问题讨论】:
-
any_container<std::unique_ptr<C>>? -
STL 容器不需要默认的可构造类型(某些方法可能需要它)。
-
"但我不能,因为它本身不是默认可构造的。"默认可构造不是标准容器的要求