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

A.2.7 +d

请勿扩展 C++ 内联函数。

按照 C++ 语言规则,C++ 内联函数是一个函数,对于该函数以下语句之一为真。

按照 C++ 语言规则,编译器可以选择是否将调用实际内联到内联函数。C++ 编译器将调用内联到内联函数,除非:

A.2.7.1 示例

缺省情况下,编译器可以内联以下代码示例中的函数 f()memf2()。此外,该类具有编译器可以内联的由编译器生成的缺省构造函数和析构函数。使用 +d 时,编译器不会内联 f()C::mf2()(即构造函数和析构函数)。


inline int f() {return 0;} // may be inlined
class C {
  int mf1(); // not inlined unless inline definition comes later
  int mf2() {return 0;} // may be inlined
};

交互

指定了调试选项 –g 时,会自动启用该选项。

但指定调试选项 –g0 不会启用 +d

+d 选项对使用 -xO4-xO5 时执行的自动内联没有影响。

另请参见

–g0–g