1
假設我有一類做出價值
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很好。
TU代表什麼? –
翻譯單位。 – doublep
在類本身中,你不能有一個類的類型爲'constexpr'的靜態數據成員,但是你可以有一個'static constexpr X get_zero();'函數。 – dyp