C ++ 11 - static_assert в функции constexpr?

Как правильно выполнить static_assert в функции constexpr ? Например:

constexpr int do_something(int x)
{
  static_assert(x > 0, "x must be > 0");
  return x + 5;
}

Это недопустимый код C ++ 11, потому что функция constexpr должна содержать только оператор return. Я не думаю, что в стандарте есть исключение, хотя GCC 4.7 не позволяет мне компилировать этот код.

53
задан Johannes Schaub - litb 24 December 2011 в 08:29
поделиться