5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C++Advent Calendar 2024

Day 7

cmath いろいろconstexprになりました

Posted at

はじめに

小ネタです。

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

乗算-加算

名前 対応
fma C++23

線形補間

名前 対応
lerp C++20

数値分類

名前 対応
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ライフを送りましょう。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?