C++ 模板参数和函数调用
我试图编写一个接收模板参数的函数,并调用另一个也接收模板参数的函数。我想使用第一个接收到的参数调用第二个,但我没有找到方法。例如:C++ 模板参数和函数调用,c++,templates,C++,Templates,我试图编写一个接收模板参数的函数,并调用另一个也接收模板参数的函数。我想使用第一个接收到的参数调用第二个,但我没有找到方法。例如: template <template <typename> class AClass, typename AnotherClass> AClass<typename AnotherClass::InnerType> bar(AnotherClass& a) { AClass<typename AnotherC
template <template <typename> class AClass, typename AnotherClass>
AClass<typename AnotherClass::InnerType> bar(AnotherClass& a)
{
AClass<typename AnotherClass::InnerType> result;
return result;
}
template <template <typename> class AClass, typename AnotherClass>
AClass<typename AnotherClass::InnerType> foo(AnotherClass& a)
{
auto result = bar<AClass, AnotherClass>(a);
}
模板
a级钢筋(另一个a级)
{
A等级结果;
返回结果;
}
模板
AClass foo(另一个a级)
{
自动结果=巴(a);
}
我收到的错误是:错误:在“,”标记之前缺少模板参数如果我添加明显缺少的返回语句,我无法重现您的问题:
template<typename T>
struct qux {
using InnerType = T;
};
template <template <typename> class AClass, typename AnotherClass>
AClass<typename AnotherClass::InnerType> bar(AnotherClass& a)
{
AClass<typename AnotherClass::InnerType> result;
return result;
}
template <template <typename> class AClass, typename AnotherClass>
AClass<typename AnotherClass::InnerType> foo(AnotherClass& a)
{
auto result = bar<AClass, AnotherClass>(a);
return result;
}
int main()
{
qux<int> b;
foo<qux>(b);
}
模板
结构qux{
使用InnerType=T;
};
模板
a级钢筋(另一个a级)
{
A等级结果;
返回结果;
}
模板
AClass foo(另一个a级)
{
自动结果=巴(a);
返回结果;
}
int main()
{
qux b;
傅(乙);;
}
错误消息是什么?在呼叫栏(a)中;它希望AClassbar
的模板参数应该放在foo
之前。然后我建议您发布不起作用的代码。“我收到的错误是:错误:在“,”token“之前缺少模板参数,在哪一行??我不明白。写一封信并发布包含行号的准确错误消息有多难??您不会从foo()
返回任何值。