根据 ANSI/ISO/IEC 14882:2014 标准 (C++14) 中的定义,C7000 编译器支持 C++,包括以下特性:
- 支持完整的 C++ 标准库,但具有以下例外情况。
- 模板
- 例外情况,通过 --exceptions 选项启用;请参阅节 5.6。
- 运行时类型信息 (RTTI) 无法禁用。虚拟类的元数据引用类的 type_info 对象,以便在运行时确定类的实际类型。
编译器支持 ISO 标准化的 2014 年标准 C++。但是,以下特性未 实现或完全受支持:
- 编译器不支持嵌入式 C++ 运行时支持库。
- 此库支持宽字符 (wchar_t),因为为字符定义的模板函数和类也适用于 wchar_t。例如,实现了宽字符流类 wios、wiostream、wstreambuf 等(对应于字符类 ios、iostream、streambuf)。但是,没有用于宽字符的低级别文件 I/O。此外,C 库接口对宽字符的支持(通过 C++ 标头 <cwchar> 和 <cwctype>)是有限的,如上面 C 库中所述。
- typeinfo 标头中不支持 bad_cast 或 bad_type_id。
- 仅部分支持目标特定类型的常量表达式。
- 不支持新的字符类型(在 C++11 标准中引入)。
- 不支持 Unicode 字符串文字(在 C++11 标准中引入)。
- 不支持文字中的通用字符名称(在 C++11 标准中引入)。
- 不支持原子操作(在 C++11 标准中引入)。
- 不支持原子性和内存模型的数据依赖项排序(在 C++11 标准中引入)。
- 不支持在信号处理程序中允许原子性(在 C++11 标准中引入)。
- 不支持强比较和交换(在 C++11 标准中引入)。
- 不支持双向围栏(在 C++11 标准中引入)。
- 不支持内存模型(在 C++11 标准中引入)。
- 不支持传播异常(在 C++11 标准中引入)。
- 不支持线程本地存储(在 C++11 标准中引入)。
- 不支持动态初始化和并发销毁(在 C++11 标准中引入)。