Compile Time Computations -- Andrzej KrzemieĊski
[Ed.: This is an old post but we feel it has valuable information about constexpr
.]
This is a good article about constant expressions and computations at compile time. It gives good coverage of the new constexpr
keyword for allowing compile-time and run-time evalution. constexpr
is discussed rigorously with information on the rules required by the facility.
Compile-Time Computations
by Andrzej Krzemieński
[...] But now, consider the following example:
const int i = 2; const char array[ i == 2 ? 64 : throw exception() ];Throwing an exception (which is an expression) cannot be evaluated at compile-time, but since
i == 2
is true, the third argument of conditional operator should not be evaluated; at least at run-time. So is the above a valid code? Not in C++03. It is valid however in C++11. Does this sound incredible? [...]