Есть ли способ вызвать ошибку времени компиляции при неявном преобразовании с использованием арифметических операторов c. Например:
class A:
public:
A operator + (const A tmp) const;
void setX(const int X)
void setY(const int Y)
void setZ(const int Z)
private:
template <typename Y>
Y operator +(const Y tmp);
main:
int a1 {2};
int a2 {3};
int a3 {4}'
char b1 {2};
char v2 {3};
char b3 {4};
A a;
a.setX(a1);
a.sety(a2);
a.setz(a3);
A b;
b.setx(b1);
b.sety(b2);
b.setz(b3);
A d= a+b; //more or so of what i mean. This should be an error
A e= a+a; // this should not be because its the same type
проблема в том, что когда я создаю шаблон для оператора, a + b и a + c генерируют ошибку. Что меня смущает, потому что + c - единственный, который должен выдавать ошибку.