3
constexpr uint32_t BitPositionToMask(int i,int Size){
static_assert(i < Size,"bit position out of range");
return 1 << i;
}
這會產生:爲什麼比較一個constexpr函數的兩個參數不是靜態斷言的一個恆定條件?
error: non-constant condition for static assertion
在GCC 4.6.2難道我沒有得到的東西或者這是一個錯誤的GCC?
更新: 謝謝安迪成爲我的書呆子守護天使。由於在編譯時我已經擁有了這些值,我只是將它作爲模板,並且按預期工作。
template<int i,int Size>
constexpr uint32_t BitPositionToMask(){
static_assert(i < Size,"bit position out of range");
return 1 << i;
}
因爲它「可能」是一個運行時間函數static_assert不像我,哦,嘿安迪你似乎回答我的所有問題。 – odinthenerd
@PorkyBrain:大聲笑,我發誓我沒有故意這樣做(其實我最近並沒有真正回答很多問題) –
你什麼時候打了50k?天啊! – chris