【发布时间】:2012-01-08 13:28:12
【问题描述】:
According to MSDN,Microsoft 仍将 nothrownew.obj 与 Visual C++ 10 (Visual Studio 2010) 运行时库一起提供,以便用户可以链接它并具有“普通”的不合标准行为(不是 nothrow 风味) new 在分配失败时返回 null。这种不合标准的行为可以追溯到现在被认为非常古老的 Visual C++ 6。
为什么要这样做?我的意思是他们使每个新版本的编译器越来越符合标准。例如,Visual C++ 7 将支持“默认 int”,但 Visual C++ 9 不支持。 new 的旧的不合标准行为可以通过稍微更改代码以使用 new 的 nothrow 风格轻松实现 - 这很简单也很容易。
为什么这个选项如此重要以至于微软仍然支持它?
【问题讨论】:
-
因为微软在其历史上从未退役过任何东西? :o)
-
@deceze:嗯,他们确实退休了“default-int”。
标签: c++ visual-c++ memory-management new-operator