Oracle Solaris Studio 12.2:C++ 用户指南

B.2.13 #pragma no_side_effect


#pragma no_side_effect(name[,name...])

可使用 no_side_effect 指示函数不更改任何持久状态。Pragma 声明了命名的函数不具有任何副作用。这意味着函数将返回仅依赖于传递参数的结果。此外,函数和后面的函数调用:

编译器执行优化时可以使用该信息。

如果函数具有副作用,执行调用该函数的程序的结果是未定义的。

name 参数指定当前转换单元中函数的名称。Pragma 必须与函数在相同的作用域,并且必须在函数声明之后出现。pragma 必须在函数定义之前。

有关 pragma 如何将重载的函数名视为参数的更加详细的说明,请参见B.1.1 将函数作为 pragma 参数进行重载