c++ - std::apply 应用于模板函数中的构造函数
问题描述
我正在编写通用代码,我需要T
使用通用可变参数元组调用通用模板参数的构造函数:
T& init_and_return(ArgsTuple& args)
{
m_data = std::apply(&T::T, args); // here compiler complains
return m_data;
}
在我的主要T
类型中,将是一个名为A
. 编译器说“没有在中命名T
的成员A
”。
如何T
以通用方式引用构造函数?
解决方案
构造函数不像其他方法那样是函数或方法——它是特殊的,你不能获取它的地址。我个人认为应该可以,但事实并非如此。
C++ 标准具有make from tuple,它可以满足您的需求。
m_data = std::make_from_tuple<T>(args);
推荐阅读
- python-3.x - 如何使值小于 0.2 的像素透明,以便在 Python 中可以看到背景中的底图?
- javascript - 从嵌套形容词数组中返回最长的形容词
- r - 如何根据行名创建新数据集?
- android-studio - 找不到类 - 找不到明确的活动类
- python - 简单的 Python 模糊卷积核函数生成奇怪的图像
- gif - What's the difference between "Color Resolution" and "Size of Global Color Table" in the GIF89a spec?
- java - 如何以函数的方式生成条件复杂的对象?
- maven - 如何为本地 .m2 存储库设置 archiveBaseName
- jquery - 如何在输入范围内使用小于添加一个类?
- javascript - 停止 div 的背景流