C++ 使用整数作为模板参数时出现编译器错误
下面的代码有什么问题C++ 使用整数作为模板参数时出现编译器错误,c++,templates,dependent-name,C++,Templates,Dependent Name,下面的代码有什么问题 template<typename X> struct A { template<int N> int foo() const { return N; } }; template<typename X> struct B { int bar(const A<X>& v) { return v
template<typename X>
struct A {
template<int N>
int foo() const {
return N;
}
};
template<typename X>
struct B {
int bar(const A<X>& v) {
return v.foo<13>();
}
};
#include <iostream>
using std::cout;
using std::endl;
int main() {
A<double> a;
B<double> b;
cout << b.bar(a) << endl;
return 0;
}
模板
结构A{
模板
int foo()常量{
返回N;
}
};
模板
结构B{
内部条形图(常数A&v){
return v.foo();
}
};
#包括
使用std::cout;
使用std::endl;
int main(){
A A;
B B;
cout更改return v.foo();
为return v.template foo();
,因为foo
是一个依赖名称,您需要明确指出,使用.template
构造时可能会重复