nya*_*108 2 c++ templates tuples
我正在编写通用代码,并且需要T使用通用可变参数元组调用通用模板参数的构造函数:
T& init_and_return(ArgsTuple& args)
{
m_data = std::apply(&T::T, args); // here compiler complains
return m_data;
}
Run Code Online (Sandbox Code Playgroud)
在我的主体中,T将有一个叫做的类型A。编译器说:“没有名为成员T中A”。
如何T以通用方式引用的构造函数?
构造函数不是函数或方法,就像其他方法一样,它是特殊的,您不能使用其地址。我个人认为应该可行,但事实并非如此。
C ++标准由tuple组成,它可以满足您的需求。
m_data = std::make_from_tuple<T>(args);
Run Code Online (Sandbox Code Playgroud)