現在c 是不是使用decltype auto 來推斷型別更加方便,安全?

時間 2021-06-03 01:12:29

1樓:暮無井見鈴

推斷物件型別用 auto 。推斷引用型別用 auto&& ,不修改的情況下 const auto& 也行(可以按需實質化臨時量,在函式返回型別處要小心使用)。函式沒有返回值時直接寫 void ( auto 也不是不行)。

能這樣寫的話,一般都比 decltype(auto) 清晰。

decltype(auto) 適用的情況比較少。例如函式模板(或模板內的非模板函式)返回型別有時是引用,有時是物件或 void ,而在返回型別位置寫 decltype(expr) 較為複雜或不可能。

2樓:d41d8c

decltype(auto) f(optional a)decltype(auto) b = f(0); // b 引用了已超出生命期的物件

容易引入dangling reference,算不上安全。

字數很多,要敲好幾下鍵盤,算不上方便。

對變數名和成員訪問表示式有特殊處理,規則不算簡單明瞭。

所以只適合用在有限的地方,例如在不需要SFINAE的時候稍微偷懶auto call_f(auto&&... args)-> decltype(f(42, std::forward(args這裡換成 decltype(auto) 可以省幾個字

光速 c 是不是向量?

王勐 根據速度定義,只要dx是向量,v就是向量。如果dx沒有方向,那就是標量,不過名字叫速率。數學上,只要給C加上方向,這個量就是向量。但是物理上,相對論裡光速大小不變,dx dt定義也不能變,所以,就找了新的運算規律來匹配實驗事實。其實,參照 陳浩的答案,相對論框架裡只要是不同參照系的速度都不能直...

知乎是不是應該考慮使用 text overflow ellipsis 了?

JS Bin 的答案,可限制行數。但是現在沒想到怎樣限制字數的方案。width 200px height 32px overflow hidden text overflow ellipsis display webkit box webkit line clamp 2 webkit box ori...

貓咪是不是天生會使用貓砂?

我覺得是天生技能,我家小貓被我撿到的時候估計最多1個月大,還啥也不懂呢,結果到家裡吃飽喝足了,第一件令我驚訝的就是爬進我給它用鞋盒子底做的臨時貓砂盆裡來了一發。雖然它動作很生疏,而且只作出埋便便的動作,其實根本沒埋上,但是那也算合格了,畢竟太小了。後來慢慢長大也是,吃不完的肉肉,或者罐頭,它也是在周...