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