Вызов примитивных оператор-функций явно в C ++
int a, b, c;
//do stuff. For e.g., cin >> b >> c;
c = a + b; //works
c = operator+(a,b); //fails to compile, 'operator+' not defined.
Это с другой стороны работает -
class Foo
{
int x;
public:
Foo(int x):x(x) {}
Foo friend operator+(const Foo& f, const Foo& g)
{
return Foo(f.x + g.x);
}
};
Foo l(5), m(10);
Foo n = operator+(l,m); //compiles ok!
Можно ли даже напрямую вызывать оператор + (и другие операторы) примитивных типов (например, int)?Если да, то как?Если нет, то есть ли ссылка на C ++, которая поясняет, что это невозможно?