我想在編譯時創建一個常量。這就是我的意思是:C++:如何在編譯時創建一個常量?
template <int M = 31>
int fast_hash(int prev_hash, int c1, int c3)
{
enum {m3 = m*m*m;}
return m * prev_hash - m3 * c1 + c3;
}
在上面的例子中,我可以計算M3 = M * m * m的每一次函數被調用,但我想,如果這樣做了一次,並且在這將是涼爽編譯時間。我怎樣才能做到這一點?
我認爲m3在這種情況下將是一個常數。在不斷傳播之後,編譯器會將m3評估爲一個常量。 –