如何规避Symbian命名约定?

时间:2009-08-05 13:51:44

标签: c++ windows naming-conventions symbian multiplatform

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

如何使用“普通”名称并仍然兼容Symbian? 我首先想到有条件地重新使用#define - 用于Symbian平台的类名,但我担心这会导致混淆。

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

1 个答案:

答案 0 :(得分:4)

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

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

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

总而言之,问题如下:

  • 来自原生Symbian C ++背景的人不会立即熟悉您的约定
  • 使用本机Symbian C ++ API可以暴露一些特定于平台的特性(异常与叶子,陷阱线束,活动调度程序等)。
  • Symbian特定的静态分析器(如CodeScanner)采用Symbian C ++代码样式,可能会生成您真正不需要关心的错误/警告