以下代码有什么问题(崩溃):
#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