2014-10-19 55 views
4

我正在使用Visual Studio 2013附帶的默認C++編譯器(我想它叫做「Visual Studio C++編譯器」),標誌爲/OxFull Optimization)。由於浮點副作用,我必須在使用gcc編譯器時禁用-ffast-math標誌。在Visual Studio C++編譯器的配置中是否有與此標誌等效的選項?是否存在與Visual Studio C++編譯器等效的-ffast-math標誌

+2

http://msdn.microsoft.com/en-us/library/e7s85ffb.aspx – 2014-10-19 14:53:52

+1

請注意,在gcc中禁用'-ffast-math'意味着不傳遞該選項,它更像是「不啓用」。 – 2014-10-21 19:17:12

回答

6

您正在尋找/fp:precise,雖然這也是默認設置。

如果您需要VS可以提供​​的最嚴格的浮點計算,請嘗試/fp:strict,儘管這可能是矯枉過正。

您可能沒有什麼可擔心的,因爲默認行爲應該是您的願望。只要確保沒有指定/fp:fast,但是如果您嘗試使用/fp:fast/fp:precise進行編譯,則無論如何都會收到編譯錯誤,因此應該很容易理解。

Hans Passant提供給MSDN website的鏈接提供了您可能需要的所有詳細信息。

-1

沒有一個MSVC++選項啓用由g ++ -ffast-math調用的優化。

+1

你確定嗎?那麼'/ fp:'怎麼樣? – 2016-10-25 07:00:19

+0

Microsoft/fp:fast不會調用這些優化。您可能會對英特爾C++使用衝突感到困惑,其中fast = 2的操作類似於g ++ -ffast-math(除了複雜的有限範圍外,fast = 1會調用重要的操作)。 – tim18 2017-07-20 17:45:10

+0

顯然它可能不完全相同,但它確實指定了OP所要求的浮點操作行爲**。他沒有詢問所有' - 數學'的副作用 – 2017-07-21 01:01:28

相關問題