if constexprを失敗させる
if constexpr
を与えられた型によって失敗させる場合は、
型に依存したパラメータをstatic_assert
に渡してやれば良いみたいです。
saka1_pさんの記事によれば、
template <typename T> constexpr bool false_v = false;
のような定数を定義して、
// if constexprの内部で static_assert(false_v<T>, "invalid type T");
のようにするらしいです。
個人的には
static_assert(!sizeof(T), "invalid type T");
が好みです。