namespace std {
template<class R, class T>
constexpr R saturate_cast(T x) noexcept;
}
概要
値x
を変換先の型R
で表現可能な値へ丸める。
テンプレートパラメータ制約
T
は符号付き整数型または符号無し整数型であること。
戻り値
- 値
x
が型T
で表現可能ならば、x
を返す - そうでないとき、型
T
で表現可能な最大値または最小値のうちx
に近い方の値を返す
例外
投げない
例
#include <cstdint>
#include <numeric>
#include <print>
int main()
{
std::println("{}", std::saturate_cast<std::int8_t>( 100));
std::println("{}", std::saturate_cast<std::int8_t>( 200));
std::println("{}", std::saturate_cast<std::int8_t>(-200));
}
出力
100
127
-128
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??