- numeric[meta header]
- function template[meta id-type]
- std[meta namespace]
- cpp26[meta cpp]
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));
}
- std::saturate_cast[color ff0000]
- std::println[link /reference/print/println.md]
100
127
-128
- C++26
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??