请考虑以下代码:
#include <sstream>
#include <iostream>
int main()
{
std::stringstream ss;
//auto loc = std::locale("de-DE"); // A
auto loc = std::locale(""); // B
ss.imbue(loc);
ss << 1.01;
std::cout << "standard formatting: " << 1.01 << std::endl;
std::cout << "localized formatting: " << ss.str() << std::endl;
}
现在,它按预期工作或在B行冻结。当使用A行时它是相同的但我认为从A变为B或反之亦然导致其工作的机会更高。它甚至发生了它曾经工作一次并再次启动它分别在A线或B线冻结。
重要的是,所有这些只有在我从VS 2015开始调试时才会发生。当我从控制台执行此程序时,它永远不会冻结(释放或调试并不重要)。
这是一个Visual Studio错误吗?