Visual Studio 2015提供了_isnan
和std::isnan
以檢查double是否爲NaN。在Visual Studio 2015中,_isnan與std :: isnan的區別如何?
以下VS的'Go to Definition'不會在同一個地方出現,因爲從一個簡單程序檢查NaN的函數和程序集輸出是不一樣的。
_isnan
與std::isnan
有什麼不同?編寫C++時應該使用哪一個?
Visual Studio 2015提供了_isnan
和std::isnan
以檢查double是否爲NaN。在Visual Studio 2015中,_isnan與std :: isnan的區別如何?
以下VS的'Go to Definition'不會在同一個地方出現,因爲從一個簡單程序檢查NaN的函數和程序集輸出是不一樣的。
_isnan
與std::isnan
有什麼不同?編寫C++時應該使用哪一個?
從與微軟的詹姆斯McNellis專用通信(貼有批准):
「他們在時間_isnan被納入C運行時的不同點是前段時間集成了一起。少數其他IEEE推薦功能; isnan稍後作爲C99新增功能的一部分加入。
如果您發現任一個產生不正確結果的情況,請在https://connect.microsoft.com/visualstudio/處提交錯誤。
我從這裏得出結論,_isnan
和std::isnan
應該做同樣的事情。
_isnan是從使用#include <float.h>
STD全局命名空間:: isnan是從使用#include <cmath>
您可以使用其中的任何一個與Visual Studio 2015隱而不宣的標準名稱空間沒關係。
https://msdn.microsoft.com/en-us/library/tzthab44.aspx – user93353