Можно ли преобразовать массив или функцию lvalue в rvalue? - PullRequest
2 голосов
/ 30 сентября 2011

Согласно C ++ Standard 2003:

An lvalue (3.10) of a non-function, non-array type T can be converted to an rvalue.

Что означает, что массив и функция не могут быть преобразованы в rvalue?

1 Ответ

5 голосов
/ 30 сентября 2011

Типы функций и массивов рассматриваются в следующих разделах (4.2, 4.3).

Значение l или значение типа «массив из N T» или «массив с неизвестной границей из T» может быть преобразовано в значение r типа «указатель на T». Результатом является указатель на первый элемент массива.

(...)

Значение l типа функции T может быть преобразовано в значение типа «указатель на T». Результатом является указатель на функция.

...