我即将编写一个 C++ 库,供 Windows 应用程序以及 Symbian 上的应用程序使用。Linux 不是当前的要求,但通常也是可能的。
出于这个原因,我想使用 STL/Boost 命名约定而不是 塞班的, ,我认为这很难习惯。
当使用 Carbide.c++ 编译代码时,这似乎已经出现了问题,因为它强制执行 Symbian 命名约定。

如何使用“正常”名称并仍然兼容 Symbian?我首先想到的是有条件地重新#define-ing 为 Symbian 平台命名类名,但我担心这会导致混乱。

不遵守Symbian的命名约定会不会出现其他问题?

有帮助吗?

解决方案

编码约定并不严格。它们的存在是为了让我们人类更容易理解代码。如果您正在编写一个多平台库,请随意使用您喜欢的任何约定。

当然,您的库可能需要以某种方式与底层操作系统进行交互。在...的帮助下 打开 C/C++ 库, ,您可以做很多事情,而无需使用本机 Symbian C++ API 及其命名约定。

在 Carbide.c++ 中,您可能想要禁用 CodeScanner 静态分析,因为它实际上只对用本机 Symbian C++ 编写的代码有用。

所以总结起来,存在以下问题:

  • 来自本地 Symbian C++ 背景的人不会立即熟悉您的约定
  • 使用本机 Symbian C++ API 可能会暴露一些特定于平台的特性(异常与异常)。树叶、陷阱线束、主动调度器等)
  • Symbian 特定的静态分析器(例如 CodeScanner)采用 Symbian C++ 代码风格,并且可能会生成您实际上不需要关心的错误/警告
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top