c++์์์ value
https://stackoverflow.com/questions/3601602/what-are-rvalues-lvalues-xvalues-glvalues-and-prvalues
[What are rvalues, lvalues, xvalues, glvalues, and prvalues?In C++03, an expression is either an rvalue or an lvalue.
In C++11, an expression can be an:
rvalue
lvalue
xvalue
glvalue
prvalue
Two categories have become five categories.
What are these...stackoverflow.com](https://stackoverflow.com/questions/3601602/what-are-rvalues-lvalues-xvalues-glvalues-and-prvalues)

์คํ์ค๋ฒํ๋ก์ฐ์ ๋ฌธ๋ต์ ๋ฒ์ญํด๋ดค์ต๋๋ค.
rvalues, lvalues, xvalues, glvalues, ๊ทธ๋ฆฌ๊ณ prvalues๊ฐ ๋ญ๊ฐ์?
C++03์์๋ rvalue์**lvalue **๋๊ฐ์ง๊ฐ ์์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ C++11์์๋ ์๋์ ๊ฐ์ ํํ์ด ์๊ฒผ์ฃ .
- rvalue
- lvalue
- xvalue
- glvalue
- prvalue
๋๊ฐ์ ํํ์ดย ๋ค์ฏ๊ฐ๊ฐ ๋๊ฒ๋๋ค.
- ์ด ์๋ก์ด ํํ๋ค์ ๋ฌด์ผ ์๋ฏธํ๋ ๊ฑฐ์ฃ ?
- ์ด ์๋ก์ด ํํ๋ค์ย rvalue, lvalue์ ๋ฌด์จ ๊ด๋ จ์ด ์๋์?
- C++0x์์์ rvalue์ lvalue๋ C++03์ ํํ๊ณผ ๊ฐ์ ๊ฑด๊ฐ์?
- ์ ์๋ก์ด ํํ๋ค์ด ํ์ํ๊ฒ ๋ ๊ฑฐ์ฃ ?ย WG21์ ์ ๋ค์ด ๊ทธ๋ฅ ์ฐ๋ฆฌ๋ค์ ํผ๋์ค๋ฝ๊ฒ ๋ง๋ค๋ ค๊ณ ํ ๊ฑด ์๋๊ฐ์?
๋ต๋ณ
๏ปฟ
n3055ย , ์ ๋ ์ด ๋ฌธ์๊ฐ ๊ฒฐ์ฝ ๊ฐ๋จํ๋ค๊ณ ๋ ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค....
์ด ๋ชจ๋ ํผ๋์ย ๋ฌด๋ธ ์๋งจํฑ(move semantics:์ด๋ ์๋ฏธ๋ก )์ผ๋ก๋ถํฐ ์์๋์์ฃ . ๊ทธ๋์ ์ฐ๋ฆฌ๋ ์ด๋์ ํ๋ ๋ณต์ฌ๋ ํ์ง ์๋ ํํ์์ ์ฌ์ฉํ ์ ์๊ฒ ๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ๋ค์ ํ์คํ ํด์น์ฐ๊ธฐ ์ํด์๋ย ์ด๋๋ ์ ์๋ ํํ๋ค ์ฌ์ด์ ํน๋ณํ ์ฐจ์ด๋ ๊ท์น์ ๋ถ์ก์์ผ๋ง ํ๊ฒ ์ฃ .
์ด๊ธฐ์ ๋ฒ์ ์ ๊ธฐ๋ฐ์ผ๋ก ๋ณด๋ฉด,ย r/l value๊ฐ์ ์ฐจ์ด๋ ๋น์ทํฉ๋๋ค.ย ์ด๋์ ๋ฌธ๋งฅ์ ๋ฐ๋ผ์ ๋ณต์กํด์ง๋ ๊ฑฐ์ฃ .
๊ทธ๋ฐ๋ฐ ๊ณผ์ฐ ์ด๊ฒ๋ค์ด ํ์ํ ๊ฑธ๊น์? ์ด ๊ณจ์น์ํ ์ ๊ธฐ๋ฅ๋ค์ ์์ ๋ฒ๋ฆฌ๊ณ ์ถ๊ธฐ๋ ํ ๊ฒ๋๋ค.ย ํ์ง๋ง ๋ ๋์ ์ต์ ํ๋ฅผ ์ํด ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ๋ค์ ๊ฐ์ธ์์์ผ ํ ๊ฑฐ์์.
Quotingย n3055:
- lvalue๋ย ํ ๋น์์ ์ผ์ชฝ์ ์์ด์ left value๊ฐ ๋์์ฃ .ย ํ๋์ ํจ์๋ ๊ฐ์ฒด๋ฅผ ์ง์ ํฉ๋๋ค.ย ์๋ฅผ ๋ค์ดย Eย ๊ฐ ํฌ์ธํฐ ํ์ ์ ํํ์์ด๋ผ๋ฉด,ย *Eย ์ Eย ํฌ์ธํฐ๋ก ๊ฐ์ฒด๋ ํจ์๋ฅผ ์ฐธ์กฐํ๋ lvalue ํํ์ด์ฃ .ย ๋ค๋ฅธ ์๋ก,ย ๋ฐํ ํ์ ์ด lvalue์ฐธ์กฐ์ธ ํจ์์ ๊ฒฐ๊ณผ๋ย lvalue์ ๋๋ค.
- xvalue๋ ๋ง๋ฃ๋(eXpiring) ๊ฐ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋๋ฐ์.ย ๋ณดํต์ ์๋ฉธ ์์ ์ด ๊ฐ๊น์ด, ๊ณง ์ด๋๋ ์์์ด๊ฒ ์ฃ .ย ํ๋์ xvalue๋ rvalue ์ฐธ์กฐ๋ฅผ ํฌํจํ ํน์ ์ข ๋ฅ์ย ํํ์ ๊ฒฐ๊ณผ์ ๋๋ค.ย ์๋ฅผ ๋ค์ด,ย ๋ฐํ ํ์ ์ด rvalue ์ฐธ์กฐ์ธ ํจ์ ํธ์ถ์ ๊ฒฐ๊ณผ๋ xvalue์ ๋๋ค.
- glvalue๋ ์ผ๋ฐ์ ์ธ(generalized) lvalue์ ๋๋ค. ํ๋์ย lvalue๊ฑฐ๋xvalue์ฃ .
- rvalue๋ ํ ๋น์์ ์ค๋ฅธ์ชฝ์ ์์ด์ right value๊ฐ ๋์์ต๋๋ค. ํ๋์ย xvalue์ด๊ณ ,ย ์์ ๊ฐ์ฒด ๋๋ย ๊ทธ ์๋ธํ์ ์ ๊ฐ์ฒด๊ฑฐ๋, ๊ฐ์ฒด์๋ ๊ด๋ จ์ด ์๋ ๊ทธ๋ฅ ๊ฐ์ ๋๋ค.
- prvalue๋ ์์ํ(pure) rvalue์ ๋๋ค. xvalue๊ฐ ์๋ rvalue์ฃ .ย ์๋ฅผ ๋ค์ด, ๋ฐํ ํ์ ์ด ์ฐธ์กฐ๊ฐ ์๋ ํจ์ ํธ์ถ์ ๊ฒฐ๊ณผ๋ prvalue์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ง๋ฌธ์๋์ด ์ฒจ๋ถํ์ ๋ฌธ์๋ ์ด ์ง๋ฌธ์ ๋ํ ์์ฃผ ํ๋ฅญํ ์ฐธ๊ณ ์๋ฃ๋๋๋ค.ย ํ์ค์์ ์๋ก ๋ฑ์ฅํ ์ฉ์ด๋ค๊ณผ ๋ณํ๋ฅผ ์์ฃผ ํ์คํ๊ฒ ๋ณด์ฌ์ฃผ๊ฑฐ๋ ์.
๊ด๊ณ๋