Почему член выражения объекта - это xvalue, а не Prvalue?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Почему член выражения объекта - это xvalue, а не Prvalue?

Сообщение Anonymous »

Я прочитал категории значений. Я наткнулся на это утверждение < /p>

xvalue < /strong>

Следующие выражения являются xvalue Expressions: < /p>
  • < Li>a.m, член объекта, где a-это rvalue, а m-нестатический элемент данных; /> < /ul>
    < /blockquote>
    Кроме того, это написано на одной и той же странице < /p>

    c ++ 11

    с введением семантики перемещения в C ++ 11, категории значений были пересмотрены, чтобы характеризовать два независимых свойства экспрессии [5]:

    p> p>
    p> p> p>
    P> p> p>
    p> PRE определили, чтобы характеризовать два независимых объекта экспрессии. Identity : можно определить, относится ли выражение к той же сущности, что и другое выражение, например, путем сравнения адресов объектов или функций, которые они идентифицируют (получено прямо или косвенно);
    имеет идентичность. Я могу применить определение идентификации в случае STD :: MOVE (a) , поскольку оно представляет тот же объект, что и . Хотя мы не можем напрямую принимать его адрес, но мы можем использовать ссылки на RVALUE. Как следующее < /p>

    Код: Выделить всё

    #include 
    
    int main() {
    int a = 5;
    int&& r_ref = std::move(a);
    
    std::cout 
    
     xvalue < /strong>
    
    Следующие выражения представляют собой выражения xvalue: < /p>
    
     Любое выражение, которое проектирует временную объект, после временной объекта; C ++ 17)
    [/list]
     
    
    Подробнее здесь: [url]https://stackoverflow.com/questions/79656347/why-is-the-member-of-object-expression-an-xvalue-not-prvalue[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему стандарт C++ определяет материализацию временного объекта для оператора sizeof prvalue?
    Anonymous » » в форуме C++
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Что такое rvalue, lvalue, xvalue, glvalue и prvalues?
    Anonymous » » в форуме C++
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Можно ли явно привести prvalue к константной ссылке, чтобы избежать дополнительного копирования в тернарном операторе?
    Anonymous » » в форуме C++
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Можно ли вызвать prvalue типа int?
    Гость » » в форуме C++
    0 Ответы
    24 Просмотры
    Последнее сообщение Гость
  • Диаграмма C# Visual Studio НЕ МОЖЕТ обрабатывать даты в XValue
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»