次のコードの問題点 (クラッシュ):
#include <string>
#include <iostream>
void foo(std::string str, unsigned long long val)
{
std::cout<< str<< " "<< val<< std::endl; // Crashes if commented as well
}
int main()
{
double d = 30.0;
foo("abc", d);
}
Visual Studio 2012/デバッグ/Win32
x64でも動作unsigned long long
します。long long
unsigned long
このコード スニペットはクラッシュします。他のシナリオでは、関数パラメーターのアドレスが変更されます。
_stol2
をに変換するdouble
ことと関係があると思われますunsigned long long