我有一个这样定义的模板重载运算符:
enum E1 {e1};
enum E2 {e2};
template <typename T, e1> void operator<<(T& t, int i){ t += i;}
template <typename T, e2> void operator<<(T& t, int i){ t -= i;}
double d = 0;
如果我以这种方式调用操作符(看起来很糟),那是很好的
operator<< <double, e1> (d, 3);
但是如果我这样调用它就会出现语法错误:
d << <double, e1> 3;
如何重写第二种形式以使其起作用?谢谢!