有理由不使用最新的C++标准吗?

问题描述 投票:0回答:1

我发现IDE中的默认标准通常不是最新发布的标准,甚至不是IDE中最新的标准。 例如 JetBrains 的 Clion 有 C++20 和 C++17,但默认选项是 C++14。

有理由不使用最新发布的标准吗?

c++ c++14 standards c++20
1个回答
39
投票

作为一般规则,如果可以的话,请使用最新标准。

但是,由于某些原因,您可能在某些情况下选择使用旧版本。

  • 您的代码使用了在新标准中改变行为或被彻底删除的功能。如果您没有时间更新代码,则针对旧标准进行编译是合理的。

  • 您的工具链可能无法正确实施新标准。可能存在一些已知的错误,迫使您坚持使用较旧的版本。

  • 您的工具链并未完全实现新标准,因此您可能需要等到实现完成,以避免出现遗漏的情况。

  • 您需要支持多个平台上的多个编译器,但并非所有组合都支持新标准。

  • 您需要与旧编译器为旧标准构建的代码进行二进制兼容,并且您没有源代码来重新编译它。在这种情况下,您可能被迫使用相同的旧编译器和语言标准来确保 ABI 兼容性。

  • 公司内部政治可能会出于任意原因强制使用特定版本。

  • 认证要求可能要求使用特定的编译器和/或语言版本。

  • 您的团队对新功能的熟悉程度可能较低,因此使用它们可能会增加出现错误的风险。

等等(顺便说一句,我已经看到以上所有情况在现实生活中发生)..

© www.soinside.com 2019 - 2024. All rights reserved.