這個問題在這里已經有了答案: std::initializer_list 回傳值的生命周期 2 個答案 是否可以從函式回傳 std::initializer_list ? (1 個回答) 2天前關閉。
我有這個簡單的功能:
initializer_list<int> f(){return {1,2,3};}
g 給出警告說:
warning: returning temporary initializer_list does not extend the lifetime of the underlying array [-Winit-list-lifetime]
退貨有風險{1, 2, 3}嗎?感謝您的解釋!
uj5u.com熱心網友回復:
An 的initializer_list行為類似于延長臨時物件的生命周期的參考(臨時物件是陣列)。
回傳參考時不適用終身延長,因此這里也不適用。編譯器是對的,回傳的串列總是懸空的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/495871.html
