Во время игры этот ответ от пользователя пользователя GMan я создал следующий фрагмент (скомпилированный с Visual С++ 9 ):
class Class {
public:
operator void() {}
};
Class object;
static_cast<void>( object );
(void)object;
object.operator void();
после перехода с отладчиком я обнаружил, что кастинг на void не вызывает Class::operator void(), на самом деле вызывает вызов только третий вызов (с явным вызовом оператора), эти две команды просто ничего не делают.
Почему operator void не вызывается с синтаксисом cast?