Как вызвать полностью специализированный перегруженный оператор? - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть оператор перегрузки шаблона, определенный следующим образом:

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;

Как переписать вторую форму, чтобы она работала? Спасибо!

...