В C++03 выражение представляет собой либо [b]rvalue[/b], либо [b]lvalue[/b]. В C++11 выражение может быть: [list] [*][b]rvalue[/b] [*][b]lvalue [*]xvalue[/b] [*][b]glvalue[/b] [*][b]prvalue[/b] [/list] Две категории превратились в пять категорий. [list] [*]Что это за новые категории выражений? [*]Как эти новые категории относятся к существующим категориям rvalue и lvalue? [*]Являются ли категории rvalue и lvalue в C++0x такие же, как в C++03? [*]Зачем нужны эти новые категории? Боги WG21 просто пытаются запутать нас, простых смертных? [/list]
В C++03 выражение представляет собой либо rvalue , либо lvalue .
В C++11 выражение может быть:
Ценность Ценность xvalue glvalue ценность
Две категории превратились в пять категорий.
Что это за новые категории выражений? Как эти новые категории...
Люди приходят в замешательство, когда слышат это в
int&& x x имеет ссылочный тип rvalue, но x является lvalue. Недоразумения возникают из-за того, что идентификаторы и выражения — это разные вещи, равно как и типы и категории значений. Более...
I wrote the following program where if a class have a non-static data member then when an object of that type is passed as argument by value, then it can't be used in a constexpr context. After searching for the issue on the web, I came across this...