https://github.com/boostorg/filesystem/commit/701ae4054947b1643eb6cd42f7e172f8
3536b764
因緣際會看到這個patch
他這樣寫 刻意用 std move 擺在return
但書本上或是網路上查到的都是說
不要這樣寫 會限制最佳化的發揮空間
但他是boost ,我就想說是不是有什麼特殊考量
相較他 const lhs 版本 ,return local變數 就沒特別寫 move
難道參數型態是 &&,return若沒move就會走copy(我想沒這個限制才對)
所以想知道 到底什麼時候要刻意加上move在return value上
另外對於他特別寫inline
1. 他實作是寫在class內,應該不用特別寫inline...有什麼背後原因嗎?
2. inline 跟 rvo感覺就有點互斥,為什麼他要特別寫inline呢?
看了很不解,懷疑自己有少理解一些觀念
謝謝