【发布时间】:2014-10-25 05:39:19
【问题描述】:
现在我想写一个可以实例化类的通用模板,当然,这些类可能没有参数或有多个参数。所以模板必须有可变参数。有人可以帮帮我吗?
为了更好的理解,请看下面的简单代码sn-p,我不知道怎么弄:
class Print
{
public:
Print(const char* param, const char* param2)
: m_str1(param)
, m_str2(param2)
{}
void outPut()
{
std::cout << m_str1 << "\t" << m_str2 << std::endl;
}
private:
std::string m_str1;
std::string m_str2;
};
template<typename ... Ts>
struct adapter
{
static void invoke()
{
C t((Ts::value)...); // make a instance on the fly
}
};
更新: 当我尝试编写这样的代码时,它不会编译:
adapter<const char*, const char*>;
【问题讨论】:
-
您遇到了什么问题?
-
@VaughnCato,看看我的更新
-
看起来您正在尝试创建
Ts类型的任意实例,但我怀疑您想要真正的值。如果Ts是const char *,您希望字符串值是什么?有一个更完整的问题示例(带有一个主要的)可能会让你更清楚你想要做什么。 -
@VaughnCato,看到我之前问过的这个问题,它包含完整的上下文,stackoverflow.com/questions/25580294/…
-
好的,这没什么大不了的:ideone.com/A0qdSW
标签: templates visual-c++ visual-studio-2012 c++11