最終更新日時(UTC):
が更新

履歴 編集

function template
<numeric>

std::saturate_cast(C++26)

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

処理系

参照