• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    function template
    <numeric>

    std::saturate_cast

    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

    処理系

    参照