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呢?
看了很不解,怀疑自己有少理解一些观念
谢谢