У меня есть функция constexpr, которая выглядит примерно так:
constexpr int foo(int bar)
{
static_assert(bar>arbitrary_number, "Use a lower number please");
return something_const;
}
Однако компиляция с GCC 4.6.3 продолжает выдавать мне
ошибку: 'bar' не может появляться в константном выражении
Я пробовал что-то вроде
constexpr int foo(constexpr const int bar)
{
static_assert(bar>arbitrary_number, "Use a lower number please");
return something_const;
}
, но constexpr нельзя использовать для аргументов функций.
Есть ли простой способ сообщить компилятору, что bar всегда является константой времени компиляции?