开发者

c++. compile error. am trying to add friend template function with enum template parameter

开发者 https://www.devze.com 2023-01-16 15:14 出处:网络
Please help with the next code: typedef enum {a1, a2, a3} E; template<E e> int foo() { return static_cast<int>(e);

Please help with the next code:

typedef enum {a1, a2, a3} E;

template<E e>
int foo() {
    return static_cast<int>(e);
}

class A {
    A() {};

    friend int foo<E e>开发者_如何学运维;();
};

The compiler says: error C2146: syntax erorr: missing "," before identifier "e"

I would be glad if someone could explain my mistake. Thanks.


If you want class A to befriend the function template foo(), you need to use:

template <E> friend int foo();

You can also befriend a particular instantiation of the function template foo():

friend int foo<a1>();
0

精彩评论

暂无评论...
验证码 换一张
取 消