
Комментарии 12
Также следует обратить внимание на то, что переменные, которые участвуют в приведении типа, не обязательно объявлены в коде явно, они могут создаваться компилятором как временные и не иметь имени.
Можно привести какую-нибудь релевантную ссылку на такое понятие, как переменная без имени?
https://en.cppreference.com/w/cpp/language/value_category.html
Подозреваю, что автор имеет в виду rvalue
Посмотрите раздел 8.6, последний пример, вторая инструкция. Там переменная типа double приводится к типу int, это значение куда-то записывается и создается ссылка на это записанное значение. А на что может ссылка ссылаться? Ссылка может ссылается только на переменную. У этой переменной нет имени, но есть время жизни, стандарт гарантирует, что ее время жизни будет не меньше, чам время жизни ссылки.
Ссылка ссылается на значение.
В приведенной в списке литературы работе применятся термин "анонимное временное значение", "анонимный временный объект". Для них отводится место в памяти, на них можно ссылаться через ссылку, для них определяется время жизни, к ним могут быть применены приведения типа, будет вызван деструктор когда надо. Чем они хуже именованных переменных? Возможно термин неименованная переменная не очень удачен чисто терминологически, но по моему суть отражает достаточно точно.
Попрвьте 2.1.2, T(x) в С не взлетит, это конструктор С++ (точнее, functional cast)
"идентификатор массива почти в любом контексте неявно приводится к указателю на первый элемент"
Не на первый, а на нулевой.
Приведение типа в C++