2016-09-15 43 views
2

Visual Studio 2015提供了_isnanstd::isnan以檢查double是否爲NaN。在Visual Studio 2015中,_isnan與std :: isnan的區別如何?

以下VS的'Go to Definition'不會在同一個地方出現,因爲從一個簡單程序檢查NaN的函數和程序集輸出是不一樣的。

_isnanstd::isnan有什麼不同?編寫C++時應該使用哪一個?

+0

https://msdn.microsoft.com/en-us/library/tzthab44.aspx – user93353

回答

1

從與微軟的詹姆斯McNellis專用通信(貼有批准):

「他們在時間_isnan被納入C運行時的不同點是前段時間集成了一起。少數其他IEEE推薦功能; isnan稍後作爲C99新增功能的一部分加入。

如果您發現任一個產生不正確結果的情況,請在https://connect.microsoft.com/visualstudio/處提交錯誤。

我從這裏得出結論,_isnanstd::isnan應該做同樣的事情。

2

_isnan是從使用#include <float.h>

STD全局命名空間:: isnan是從使用#include <cmath>

您可以使用其中的任何一個與Visual Studio 2015隱而不宣的標準名稱空間沒關係。

Refer this for more on this

+0

math.h公開'isnan'不是'_isnan'。我不認爲他們是完全一樣的東西。 – jbcoe

+0

謝謝。糾正。 – Techidiot

+0

從https://msdn.microsoft.com/zh-cn/library/tzthab44.aspx「_isnan和_isnanf函數是Microsoft特定的。」我不認爲'_isnan'來自標準庫頭。 – jbcoe

相關問題