はじめに
小ネタです。
C++23からC++26にかけてcmathのいろいろな数学関数がconstexpr対応しました。(します)
cmath - cpprefjp C++日本語リファレンス | C++23での差異
だいたいの数学的計算はconstexprにできるんじゃないかってくらい対応したので
見ていこうと思います。
constexpr対応一覧
三角関数
名前 |
対応 |
sin |
C++26 |
cos |
C++26 |
tan |
C++26 |
asin |
C++26 |
acos |
C++26 |
atan |
C++26 |
atan2 |
C++26 |
双曲線関数
名前 |
対応 |
sinh |
C++26 |
cosh |
C++26 |
tanh |
C++26 |
asinh |
C++26 |
acosh |
C++26 |
atanh |
C++26 |
双曲線関数
名前 |
対応 |
exp |
C++26 |
exp2 |
C++26 |
expm1 |
C++26 |
log |
C++26 |
log10 |
C++26 |
log2 |
C++26 |
仮数と指数
名前 |
対応 |
ldexp |
C++23 |
frexp |
C++23 |
ilogb |
C++23 |
logb |
C++23 |
modf |
C++23 |
scalbn |
C++23 |
scalbln |
C++23 |
累乗・冪根と絶対値
名前 |
対応 |
pow |
C++26 |
sqrt |
C++26 |
cbrt |
C++26 |
hypot |
C++26 |
abs |
C++23 |
fabs |
C++23 |
誤差関数とガンマ関数
名前 |
対応 |
erf |
C++26 |
erfc |
C++26 |
tgamma |
C++26 |
lgamma |
C++26 |
最近傍整数
名前 |
対応 |
ceil |
C++23 |
floor |
C++23 |
trunc |
C++23 |
round |
C++23 |
lround |
C++23 |
llround |
C++23 |
剰余
名前 |
対応 |
fmod |
C++23 |
remainder |
C++23 |
remquo |
C++23 |
浮動小数点操作
名前 |
対応 |
copysign |
C++23 |
nextafter |
C++23 |
nexttoward |
C++23 |
最大値・最小値と正の差
名前 |
対応 |
fmax |
C++23 |
fmin |
C++23 |
fdim |
C++23 |
乗算-加算
線形補間
数値分類
名前 |
対応 |
fpclassify |
C++23 |
isfinite |
C++23 |
isinf |
C++23 |
isnan |
C++23 |
isnormal |
C++23 |
signbit |
C++23 |
数値比較
名前 |
対応 |
isgreater |
C++23 |
isgreaterequal |
C++23 |
isless |
C++23 |
islessequal |
C++23 |
islessgreater |
C++23 |
isunordered |
C++23 |
参考
cmath - cpprefjp C++日本語リファレンス
まとめ
ほぼconstexprになりました。
快適なconstexprライフを送りましょう。