2010-02-12 5 views

ответ

2

Вы, наверное, уже понял, что это, но это:

UIViewController tmp*=_currentViewController; 

интерпретируется как:

UIViewController tmp *= _currentViewController; 

который является переуступка операции умножения с LHS, что это декларация объекта (не -pointer) с именем «tmp». Указатель объекта с именем «_currentViewController» - это другой операнд.

Таким образом, проще утверждение дает ту же ошибку:

int a *= b; 

Обычно у вас есть что-то вроде:

a *= b; 

который расширяется быть:

a = a * b; 

Однако LHS в этом случае это не просто «а», а объявление «int a».

моя догадка, что из-за этого странного значения LHS, компилятор интерпретирует расширение это что-то вроде:

int a { return a * b; } 

, который явно nested function.

Смежные вопросы