2010-05-13 133 views
3

据说Symbian C++有自己的方言,Symbian C++和规范C++之间的语法区别是什么?

有人可以列出不同的确切方面吗?

+0

从技术上讲,每个编译器都是它自己的C++方言。 g ++不同于vC++等等。它们每个都有不属于标准的特征,每个特征都可能或不可能以不同的方式实现完整的标准。 – xenoterracide 2010-05-13 15:39:37

+0

@xenoterracide:是的,但它确实曾经是Symbian/C++根本不像标准C++。好的,所谓的“标准C++”实现通常缺少一些零碎的东西,比如'export',或者模板中的正确名称解析。但是有一次Symbian/C++没有例外。或者键入模板参数(仅限整数)。或者任何标准头文件。基于C++的预标准版本,它是它自己的事情。与尝试实现C++的尝试没什么可比性。 – 2010-05-13 16:11:28

回答

1

Symbian C++与'norma不是不同的语言l'C++,但它有很多Symbian特定的约定。

1

今天,术语Symbian C++也用于将经典的Symbian C++/S60开发与更现代化的Qt开发堆栈分开。

6

对此的一个很好的资源是Fundamentals of Symbian C++书,可通过Symbian基金会网站获得。

的主要途径,其中的C++在Symbian方言从标准C++的不同是:

  • 例外不直接使用,即不应该使用在Symbian的C“掷” ++。相反,Symbian有其自己的例外形式,称为leaves。这可以追溯到这样的事实:在创建Symbian时,编译器并未广泛支持异常。
  • 异常不能从C++构造函数中抛出,所以不能使用标准的RAII技术。相反,Symbian使用两阶段构造方法,并使用一种称为清理栈的机制。更多详细信息可在Symbian基金会网站here上找到。

就标准库而言,现在有一个STL的端口可用于Symbian,所以所有的标准容器和算法都可用。然而,这是一个最近的发展,所以操作系统有它自己的字符串,阵列,哈希等实用类。

随着Teknolog提到,最近的一个重要发展是Qt到Symbian OS的移植。从Symbian^4开始,整个UI将使用Qt重写,这意味着Qt将成为本地应用程序开发工具包。这意味着,虽然Symbian C++仍将用于操作系统中的中间件和较低级别的开发,但应用程序开发人员将使用Qt,因此不需要了解C++的Symbian方言。我在我的回答中描述了这个问题Qt or Symbian C++

相关问题