#include <cstdio>
#include <math.h>
class C {
public:
C() {}
C(double) { printf("hello world\n"); }
};
int main(int argc, char** argv)
{
C(NAN);
return 0;
}
僕は今日... こんなコードをコンパイルしたんだ...。gcc でコンパイルして実行したんだ...。
hello world
期待通りだった。僕は安心し、これを今度は MSVC でビルドしたんだ...。
実行すると...
何も出ない...僕は怖くなった。
何なんだ!何なんだ!NaN なんだーーー!
僕の C++ 人生はなんだったのか...。僕は病に侵されているに違いない...。
怖いながらもデバッガで追ったんだ...
そしてステップインした...
えっ...
尋常ではない程の汗が僕の頬を伝った。
まっ...まさか!
そう、MSVC には NAN が宣言されていない。
これのおかげで2時間程無駄にした。
Fix test. MSVC doesn't have definition of NAN by mattn - Pull Request #43 - kazuho/picojson - GitHubNAN が宣言されていない為に、NAN という変数が宣言されてしまっていた。
Note: https://gist.github.com/mattn/bf1e56aa832c031e5df6 illustrates the problem. MSVC somehow succe...
https://github.com/kazuho/picojson/pull/43
NAN なんだ、まったく。
酷い一日だった。