13
4

2 に答える 2

9

1つの顕著なケースは列挙子です

enum arity { one, two };

onetwoは右辺値(より具体的には、C ++ 0xのprvalues)です。もう1つは、テンプレートの非型パラメーターです。

template<int *P> struct A { };

Pも右辺値です(より具体的には、C ++ 0xのprvalue)。

于 2011-05-28T21:17:16.460 に答える
8
  1. ブールリテラルtruefalseはbool型のprvalueです。
  2. nullptrタイプのprvalueですnullptr_t
  3. 関数から名前付き変数を返すと、xvalueその式のコンテキストでになり、anxvaluervalue(§3.10/ 1による)です。

もっとあるかもしれませんが、現時点で私が考えることができるのはそれだけです(そして、3番目は疑わしいです-それは実際にはxvalueである式ですが、次のようなものですreturn x;xローカル変数はどこにあり、値を返します、参照ではありません)、変数の名前式です。名前は実際にはglvalueを参照し、式ではその値(実際には名前ではありません)がxvalue(右辺値)に変換されます。

于 2011-05-28T15:04:14.787 に答える