我越来越绝望。在Windows 7中使用代码::块,我已经安装了约的MinGW/TDM-GCC的半打的变化,但我不能让to_string我INT转换为字符串,例如:C++ - to_string不能跨多个编译器(MinGW,MinGW64,TDM GCC)在Windows的Code :: Blocks中工作
std::cout << std::to_string(1) << ' - one' << std::endl;
输出1544173669
我见过关于to_string在早期版本的MinGW中不能工作的各种错误报告(从v4.7到4.9之前的任何地方),但我试过最新版本无济于事。我已按照these instructions安装最新的TDM-GCC,并适当更改工具链和调试器设置。
我所要求的是一些解释和解决方案,为什么这不起作用。我可以根据需要提供更多信息。
这里没有UB。 ''one''是实现定义的,不需要给出警告。 –
@ M.M,Ouch,你是对的。没有UB。纠正! ...关于警告,对编译器发出警告或允许您明确禁止它的用户更安全。例如,像他们(gcc和Clang)对“if(x = 5)”这样的表达式的处理方式一样;被'if((x = 5))'所抑制。有几次,我通过这样的警告节省了数小时调试细微的错误。对于实现定义的行为 - 如果我们对可移植的C++是“迂腐”的... ...因为,它更多的是一个有争议的问题,因为它不是一个授权.... – WhiZTiM