【发布时间】:2020-11-08 23:30:02
【问题描述】:
我正在尝试使用模板模板参数,但我的代码无法编译。
template<class DataType, template<class T> class Container>
void foo(Container<DataType> test)
{
}
int main()
{
std::vector<int> testVec{1,2,3,4};
foo<int, std::vector>(testVec);
}
错误信息是 "调用 'foo' 没有匹配的函数。
- 候选模板被忽略:模板参数“容器”的显式指定参数无效”
谁能帮帮我?
【问题讨论】:
-
请在问题中包含完整的错误消息。我的编译器告诉我出了什么问题godbolt.org/z/96a3Eq。如果您不理解错误消息,其他人会,无论如何,错误消息是您应该用来修复错误的内容
-
@idclev463035818 添加错误消息是必须的,但公平地说,GCC 在这里用经典的
note: template argument deduction/substitution failed毫无帮助。 -
我已经添加了错误信息。谢谢两位
-
@HolyBlackCat 推荐的候选人通常对我有很大帮助。出于某些原因,提问者经常会跳过所有附加信息并专注于“它不起作用”的消息版本