请帮助解决下一个代码:
typedef enum {a1, a2, a3} E;
template<E e>
int foo() {
return static_cast<int>(e);
}
class A {
A() {};
friend int foo<E e>();
};
编译器说:错误C2146:语法erorr:在标识符“e”之前缺少“,”
如果有人能解释我的错误,我会很高兴的。 感谢。答案 0 :(得分:2)
如果您希望课程A
与功能模板foo()
成为联系人,则需要使用:
template <E> friend int foo();
您还可以与函数模板foo()
的特定实例化建立联系:
friend int foo<a1>();