struct A {
int i;
};
struct B {
A a;
operator A*() { return &a; }
};
int main(int argc, char *argv[])
{
B b;
return b->i;
}
g++
сообщает error: base operand of ‘->’ has non-pointer type ‘B’
Почему этот класс неявно конвертируется в указатель?
Почему? Я выяснил, как обойти эту проблему (используя operator->
), но я не понимаю, почему неявное преобразование не происходит.