茂加部珈琲店

主にtech関連のメモ置き場です

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");

が好みです。