【发布时间】:2016-04-25 20:07:28
【问题描述】:
当我尝试编译以下代码时,我收到 C2672 和 C2783 错误。 我不知道如何解决它。
class Statement
{
public:
template<typename T, typename ... Args>
void Bind_All(Args... args)
{
std::vector<T> list = { args... };
}
}
void func()
{
Statement stmt;
stmt.Bind_All(1, 2.5, "3");
}
错误 C2672:'Statement::Bind_All':找不到匹配的重载函数
错误 C2783: 'void Statement::Bind_All(Args...)': 无法推导出 'T' 的模板参数
谢谢!
【问题讨论】:
-
嗯,它是说它不能推断出
T,这是有道理的,因为参数中没有任何东西依赖于T。告诉它;也就是说,你认为T应该在这里吗?您在参数中混合了不同的类型。 -
你也忘了在类声明后加分号。
标签: c++ templates compiler-errors variadic