我有一个需要初始化的智能指针元组(作为类模板的成员)。我使用 std::apply 在其他地方迭代元组,但是如何在不知道它们的类型的情况下用新对象初始化它们?用调试器运行下面的代码告诉我元组中的元素之后仍然是“空的”。我在这里做错了什么?
struct A {
int a = 1;
}
struct B {
int b = 2;
}
std::tuple< std::unique_ptr< A >, std::unique_ptr< B > > my_tuple;
std::apply( [] ( auto&... ptr ) { //std::unique_ptr< T >
(..., ptr.reset( { } )); //ptr.reset( new T() )
}, my_tuple );