博客 阅读时间 2 分钟

正统 C++ 的拥趸:他们是少数派,还是沉默的大多数?

分享本文
Orthodox C++ Fans: Are They a Minority or a Silent Majority?

博主、意见领袖以及 C++ 标准委员会都在积极倡导使用现代 C++(Modern C++)。通过文章、教程和社交媒体,博主和意见领袖们展示最新 C++ 标准的好处和创新特性,旨在教育和启发编程社区。他们的共同努力旨在鼓励开发者采用现代 C++,利用其先进能力编写更高效、更可维护、更健壮的代码。

然而,并非所有 C++ 开发者都出于各种原因认同采用现代 C++,这催生了"正统 C++"(Orthodox C++)流派的出现,它主张只使用 C++ 的一个最小子集。

正统 C++,按照其拥护者

的定义:正统 C++(有时被称为C+)是 C++ 的一个最小子集,它对 C 进行了改进,但避免了所谓现代 C++ 中所有不必要的东西。它与现代 C++ 的理念恰好相反。

概括来说,正统 C++ 的拥护者接受的是 Bjarne Stroustrup 40 年前所呈现的那个 C++:

https://www.youtube.com/embed/69edOm889V4

以下是一些采用正统 C++ 风格的项目示例:

正统 C++ 的首选规则:

  • 类 C 的 C++ 是一个良好的起点。如果代码不需要更多复杂性,就不要添加不必要的 C++ 复杂性。一般来说,任何熟悉 C 语言的人都应该能读懂这些代码。
  • 不要像这样做;正统 C++ 中"设计理由"的结尾应该紧跟在"相当简单,而且可用。EOF"之后。
  • 不要使用异常。
  • 不要使用 RTTI。
  • 不要使用 C++ 运行时对 C 运行时头文件的包装(<cstdio>、<cmath>等),直接使用 C 运行时(<stdio.h>、<math.h>等)。
  • 不要使用流(<iostream>、<stringstream>等),改用 printf 风格的函数。
  • 不要使用 STL 中任何会分配内存的东西。
  • 不要为了学究式的自我满足而过度使用元编程。只在必要之处、能降低代码复杂性的地方适度使用它。

如我们所见,正统 C++ 的支持者主张只使用 C++ 的最小子集,但网上的资料表明他们属于少数派。确实,多数人支持使用现代 C++。然而,放眼更广泛的 C++ 开发者群体,问题依然存在:大多数开发者是在积极使用现代 C++ 特性,还是主要依赖基础的 C++ 概念?

对此我们无法给出精确答案,但很明显,由于遗留代码库的原因,许多项目仍然坚持正统 C++ 的风格。这往往阻碍了开发者向现代 C++ 过渡,导致对基础 C++ 概念的持续倚重。

分享本文