はじめに
小ネタです。
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ライフを送りましょう。