2014-10-19 80 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

相关问题