JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.2:C++ 用户指南
search filter icon
search icon

文档信息

前言

第 1 部分C++ 编译器

1.  C++ 编译器

2.  使用 C++ 编译器

3.  使用 C++ 编译器选项

第 2 部分编写 C++ 程序

4.  语言扩展

5.  程序组织

6.  创建和使用模板

7.  编译模板

8.  异常处理

9.  改善程序性能

10.  生成多线程程序

第 3 部分库

11.  使用库

12.  使用 C++ 标准库

13.  使用传统 iostream 库

14.  使用复数运算库

14.1 复数库

14.1.1 使用复数库

14.2 complex 类型

14.2.1 complex 类的构造函数

14.2.2 算术运算符

14.3 数学函数

14.4 错误处理

14.5 输入和输出

14.6 混合模式运算

14.7 效率

14.8 复数手册页

15.  生成库

第 4 部分附录

A.  C++ 编译器选项

B.  Pragma

词汇表

索引

14.4 错误处理

复数库具有以下用于错误处理的定义:

extern int errno;
class c_exception {...};
int complex_error(c_exception&);

外部变量 errno 是来自 C 库的全局错误状态。errno 可以为标准头文件 errno.h 中所列值(请参见 perror(3) 手册页)。没有任何函数会将 errno 设置为零,但有许多函数会将它设置为其他值。

要分辨特定运算是否失败:

  1. 在运算前将 errno 设置为零。

  2. 测试运算。

函数 complex_error 采用对类型 c_exception 的引用并由下列复数运算库函数调用:

缺省版本的 complex_error 返回零。这个零值的返回意味着发生了缺省的错误处理。可以提供自己的替换函数 complex_error,以执行其他错误处理。cplxerr(3CC4) 手册页中介绍了错误处理。

cplxtrig(3CC4) 和 cplxexp(3CC4) 手册页中介绍了缺省的错误处理,下表中也进行了简要介绍。

复数运算库函数
缺省错误处理汇总
exp
如果产生溢出,将 errno 设置为 ERANGE,并返回一个极大的复数。
log、log10
如果参数为零,将 errno 设置为 EDOM,并返回一个极大的复数。
sinh、cosh
如果参数的虚部产生溢出,则返回一个零复数。如果实部产生溢出,则返回一个极大的复数。无论是以上哪种情况,都将 errno 设置为 ERANGE。