- 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]
100
127
-128
- C++26
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??