gpt4 book ai didi

c++ - 使用整数作为模板参数时出现编译器错误

转载 作者:可可西里 更新时间:2023-11-01 18:18:05 25 4
gpt4 key购买 nike

下面这段代码有什么问题?

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;
}

在函数 B::bar 中,编译器提示:

error: invalid operands of types ‘’ and ‘int’ to binary ‘operator<’

如果 A 不是模板,一切都可以正常编译。

最佳答案

更改 return v.foo<13>();return v.template foo<13>();因为foo是从属名称,您需要使用 .template 明确提及构造。

关于c++ - 使用整数作为模板参数时出现编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3691420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com