動機
auto hi = [](string& s) { return s+"!"; }
hi("123");
這會報錯,十分反人類
lvalue與rvalue
雖然說在spec定義的很多又很長
可以想像成有兩個區塊放資料 一個是有被變數指到的資料 另一個是算完了,但還沒指定到變數的資料
被變數指到的資料 就是 lvalue,可以用&
來pass ref
還沒指定到變數的資料 就是 rlvaue,要用&&
來pass ref
auto hi = [](string& s) { return s+"!"; }
hi("123");
這會報錯,十分反人類
雖然說在spec定義的很多又很長
可以想像成有兩個區塊放資料 一個是有被變數指到的資料 另一個是算完了,但還沒指定到變數的資料
被變數指到的資料 就是 lvalue,可以用&
來pass ref
還沒指定到變數的資料 就是 rlvaue,要用&&
來pass ref