Я реализовал два преобразования для класса. Один должен кипеть, другой - инт &.
Если я неявно конвертирую в int, он использует int & translation, но если мне нужен bool, он все равно использует int & translation.
struct A
{
operator bool() const;
operator int&();
};
// trying to call these:
A a;
int i_test = a; // calls operator int&()
bool b_test = a; // calls operator int&()
Я понимаю, что a неявно преобразуется в int &, а затем в bool, но почему это занимает более длинный путь? Как я могу избежать этого без необходимости писать a.operator bool()
?