c++ lvalue, rvalue, xvalue, prvalue, glvalue
Created on Oct 24, 2024
c++ lvalue, rvalue, xvalue, prvalue, glvalue: c++ value categories
Examples:
Examples:
Q: Is an xvalue an rvalue ?
A: Yes, an xvalue is an rvalue, but it is not a pure rvalue, a pure rvalue is called prvalue.
Q: Which value the resource of can be reused?
A: Just the resource of lvalue can not be reused, the resource of all other values can be reused.
cppreference xvalue:
https://en.cppreference.com/w/cpp/language/value_category#xvalue
Q: How to quickly understand all value categories?
A: An lvalue is a value that has an address that can be accessed by the program, its resource can not be reused. An rvalue is a value that is not lvalue, its resource can be reused. Most cases, when we talk about rvalue, we are actually talking about pure rvalue, which is called prvalue. There is a value category that is rvalue but not pure rvalue, it is xvalue. If the subspace expression of an rvalue expression contains an implicit named value, that is likely an xvalue, x here means expiring. Xvalue is rvalue, but it is not pure rvalue (prvalue). We put xvalue and lvalue to one category: glvalue (generalized lvalue).
cppreference c++ value categories
Microsoft c++ value categories
Powered by - B2 Build | boost quickbook | I2Pd
====
cppfxjjm5bgqx2cepvisfcy4zz4ystzxxh36mtuvqm2jp5g6rb7a.b32.i2p