如何规避 Symbian 命名约定?
-
22-07-2019 - |
题
我即将编写一个 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++ 代码风格,并且可能会生成您实际上不需要关心的错误/警告
不隶属于 StackOverflow