有什么理由使用较旧的ISO C++语言标准吗?

3

当我在zh.cppreference.com学习C ++时, 我看到诸如“C ++ 11”、“C ++ 14”、“C ++ 17”和“C ++ 20”之类的注释。

在Visual Studio中,我可以设置要使用的C ++语言标准,但是是否有使用旧版本的原因呢? 是为了支持旧设备或其他原因吗?


它是为了支持旧代码。然而,在新代码中使用旧版本没有理由(除非您在新实现中发现错误)。 - john
还有一些旧编译器尚未实现最新的功能。 - eesiraed
如果你是从头开始开发新代码,可能没有太多需要。然而,如果你正在为维护旧代码做出贡献,那么使用旧版本可能是合适的。如果你关心代码的可移植性,你可能需要考虑到你的代码有可能被编译器构建,这些编译器不符合最近的标准 - 例如,因为唯一针对某些感兴趣平台的编译器是旧的编译器。 - Peter
想想全世界还有那些被迫使用Turbo C++的可怜人。当COVID结束,你可以去酒吧时,如果你不是其中之一,请感激地喝一杯。 - user4581301
1个回答

1

有几个原因你可能想使用旧版本。

  1. 你可能发现你的旧代码无法与新版本编译。修复刚刚发现的安全漏洞可能比将一百万行代码移植到新标准更加优先。
  2. 你的客户可能指定要使用某个版本。也许他们还不想升级他们的编译器。或者,你可能将你的软件作为源代码分发,不想限制你的代码只能被拥有最新编译器的用户使用(这在开源项目中很常见)。
  3. 你可能需要将你的代码移植到一个陈旧的嵌入式设备上,该设备没有现代编译器。
  4. 并不是所有程序员都是专业程序员。如果C++11是你以前学过的,那么你可能能够在比学习新功能更短的时间内用C++11制作原型。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接