
Louis Dionne
template
void allow_expansion(T&&...); template
struct or_ { static constexpr bool value = !noexcept( allow_expansion((T::value ? throw : 0)...) ); };
How embarrassing; my unit test was very poor and the above trick
does not seem to work. However, the following was tested more rigorously
and works (with similar performance improvements):
template