36

我需要在命令行上使用哪些標誌來禁用g ++編譯器自動啓用的返回值優化?禁用g ++的返回值優化

+2

給出的代碼的例子,爲什麼你不希望這種優化 – fge 2012-01-06 12:59:38

+2

@fge的我調試和測試我的軟件庫的實現,所以我寧願看到我的軟件執行過程中的每一步...... – 2012-01-06 13:06:03

+5

當然,你會意識到很多人會用構造函數elision實際使用你的庫,所以你需要在該配置中測試它嗎? – 2012-01-06 13:11:43

回答

71

-fno-elide-constructors

C++標準允許實現省略創建臨時其僅用於初始化的相同類型的另一個目的。指定此選項將禁用該優化,並強制G ++在所有情況下調用複製構造函數。 [來源:男人GCC]


+0

非常感謝你!現在我有了我想從我的編譯器中看到的東西。 – 2012-01-06 13:02:45

+1

偏離主題:它可能會節省一些時間注意,鏗鏘[我的 - 版本是蘋果鏗鏘聲4.1版(標籤/ Apple/clang-421.11.66)(基於LLVM 3.1svn)]使用此標誌時有一個錯誤,在我的情況下,似乎產生seg故障:http://llvm.org/bugs/show_bug.cgi?id=12208 – 2014-02-10 18:33:48