Почему «оператор void» не вызывается с синтаксисом приведения?

Играя сэтот ответ отпользователь GMan Я создал следующий фрагмент (скомпилированный с Visual C ++ 9):

 class Class {
 public:
     operator void() {}
 };

 Class object;
 static_cast<void>( object );
 (void)object;
 object.operator void();

перешагнув через отладчик, я обнаружил, чтоvoid не вызываетClass::operator void()только третий вызов (с явным вызовом оператора) фактически вызывает оператор, два приведения просто ничего не делают.

Почемуoperator void не вызывается с синтаксисом приведения?

Ответы на вопрос(1)

Ваш ответ на вопрос