Показать сообщение отдельно
  #25 (permalink)  
Старый 11.12.2011, 17:49
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Livanderiaamarum
Вот в чем вопрос, почему reference меняется на VALUE?
Важно запомнить, что this в контексте функции определяется caller'ом. И все, что определяется слева от () является типом Reference, в противном случае null, а т.к. нет практического смысла возвращать null подставляется Window.
Исходя из вышесказанного выражение типа:
(foo.bar = foo.bar)(); не определяются как Reference, именно по этому возращается Window (в basic mode).

Сообщение от nerv_
Можно ссылку?
11.1.6 Оператор группировки
11.2 Левосторонние выражения
11.13.1 Простое присваивание ( = )

Сообщение от nerv_
Флэнаган предполагает, что строки передаются по ссылке, но сравниваются по значению.
Можно предположить, что прототип функции примерно такой:
template <class T> T GetValue(const T &value);

В этом случае, формально значение передается по ссылке.

Последний раз редактировалось monolithed, 13.12.2011 в 08:33.
Ответить с цитированием