假设我有一堂课

struct X
{
  static const X  ZERO;

  int  value;

  int  square () const { return value * value; }
  ...
};


然后在一个TU中,我将其定义为

const X X::ZERO { 0 };


但是,其他TU对价值一无所知,因此据我所知无法基于此类知识进行优化,例如他们不能说X::ZERO.square()在编译时为0。

是否可以以某种方式拥有一个静态字段,并且仍然出于优化目的而让所有TU都知道它的值? C ++ 11很好。

最佳答案

听起来好像您正在寻找“整个程序优化”。在Microsoft的编译器中,它的名称为“链接时间代码生成”。

关于c++ - 使所有TU都知道一个静态对象字段的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21341192/

10-11 01:03