0

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

我怎样才能使用“普通”名称并且仍然与 Symbian 兼容?我首先考虑有条件#define地为 Symbian 平台重新命名类名,但我担心这会导致混乱。

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

4

1 回答 1

4

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

当然,您的库可能需要以某种方式与底层操作系统交互。借助Open C/C++ 库,您无需使用原生 Symbian C++ API 及其命名约定即可做很多事情。

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

所以总结起来,问题如下:

  • 来自本地 Symbian C++ 背景的人不会立即熟悉您的约定
  • 使用原生 Symbian C++ API 可能会暴露一些特定于平台的特性(异常与叶子、陷阱线束、活动调度程序等)
  • 特定于 Symbian 的静态分析器(例如 CodeScanner)采用 Symbian C++ 代码风格,可能会生成您真正不需要关心的错误/警告
于 2009-08-05T14:20:22.510 回答