動機

auto hi = [](string& s) { return s+"!"; }
hi("123");

這會報錯,十分反人類

lvalue與rvalue

雖然說在spec定義的很多又很長

可以想像成有兩個區塊放資料 一個是有被變數指到的資料 另一個是算完了,但還沒指定到變數的資料

被變數指到的資料 就是 lvalue,可以用&來pass ref 還沒指定到變數的資料 就是 rlvaue,要用&&來pass ref