This question很棒,因为它可以回答rvaluelvaluexvalueglvalueprvalue之间的区别是什么。最佳答案对每个答案都有不错的解释,当我阅读它们时,我会理解它们之间的差异。但是,我很难把它们摆在脑海中,每当有人使用这些术语提醒自己是哪个术语时,我都必须在Google上搜索它们。

是否有任何常用的助记符或其他方式记住人们是哪一个?我真的很希望能够将它们笔直地放在脑海中,而不会像我目前所做的那样混淆它们。

最佳答案

我建立了2个关联:

  • 您只能接受左值
  • 的地址
  • xvalues是std::move表达式是

  • 如果两者都不是,则可能是prvalue。

    现在,要记住glvalues和rvalues,我只是想像一下这张图:

    左值和x值都是glvalue,而xvalue和prvalue都是rvalue。这实际上是您在实践中需要了解的所有内容。

    可能记住lvaluse,xvalues和prvalues的助记符是Lower eXPRessions(它包含L,X和PR)。也许不会。

    10-04 17:24