static_assert(false, "was wrong"); - yohhoyの日記
#include <type_traits>
template <typename T>
T doubling(T x)
{
if constexpr (std::is_integral_v<T> || std::is_floating_point_v<T>) {
// 算術型の場合は2倍した値を返す
return x * T{2};
} else {
// それ以外の型はコンパイルエラー
static_assert(false); // NG(CWG 2518適用前)
// CWG 2518適用後は上記記述でOK
}
}
constexpr if文に影響ありそう
https://twitter.com/yohhoy/status/1759832908834238510
en.cppreference.com/w/cpp/language… ではC++11まで遡及適用していますね。issueくらい作っておいた方がよさげ。
constexpr if文に影響ありそう