假设我有一个类
struct X
{
static const X ZERO;
int value;
int square () const { return value * value; }
...
};
然后在一个TU中我将其定义为
const X X::ZERO { 0 };
但是,其他 TU 对值(value)一无所知,因此据我所知,无法根据这些知识进行优化,例如他们不能说 X::ZERO.square()
在编译时是 0。
是否有可能以某种方式拥有一个静态字段,并且仍然让所有 TU 都知道它的值以进行优化? C++11 没问题。
最佳答案
听起来好像您在寻找“全程序优化”。在 Microsoft 的编译器中,它的名称为“链接时间代码生成”。
关于c++ - 使所有 TU 都知道静态对象字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21341192/