Почему сравнение двух параметров функции constexpr не является постоянным условием для статического утверждения?
constexpr uint32_t BitPositionToMask(int i,int Size){
static_assert(i < Size,"bit position out of range");
return 1 << i;
}
это генерирует:
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;
}