On Tuesday, 9 June 2015 at 10:48:22 UTC, Marc Schütz wrote:
static assert() is your friend in this case. See also the related problem of guaranteeing that a template is

When constexpr is part of the prototype you know that it isn't supposed to do substantial work.

Without it, you risk the compiler spending a lot of time computing constants/tables that should be done at runtime to save compile time and object code size. And since C++ programmers expect that level of control, it would have ended up as a pragma if it was not part of the language?

Not saying one way is obviously better than the other. I think LLVM (and all the open source starting points available) paves the way for performant high level languages by reducing the cost of building a backend. Maybe in some unexpected direction that fits next-gen hardware better than C-descendants.

Reply via email to