Saturation arithmetic building on 'Integer-Overflow-Builtins' Implementation works with integer, unsigned integer and float or reference to them. Operators work with the same types or Saturated types of them.  
 More...
|  | 
| constexpr | Saturated (const T &value) | 
|  | 
| constexpr | Saturated (const Saturated< T > &other) | 
|  | 
| template<typename U > | 
| requires constexpr std::integral< std::remove_reference_t< U > > | Saturated (const U &v) | 
|  | 
| template<typename U > | 
| requires constexpr std::floating_point< std::remove_reference_t< U > > | Saturated (const U &v) | 
|  | 
| template<typename U > | 
| requires constexpr std::integral< std::remove_reference_t< U > > | Saturated (const Saturated< U > &other) | 
|  | 
| TP | getValue () const | 
|  | 
|  | operator T & () | 
|  | 
|  | operator T () const | 
|  | 
| constexpr auto | operator<=> (const Saturated< T > &) const = default | 
|  | 
| void | operator= (const Saturated &other) | 
|  | 
| template<typename U > | 
| requires std::integral< std::remove_reference_t< U > > void | operator= (const Saturated< U > &other) | 
|  | 
| Saturated & | operator++ () | 
|  | 
| Saturated & | operator-- () | 
|  | 
| Saturated | operator++ (int) | 
|  | 
| Saturated | operator-- (int) | 
|  | 
| template<typename U > | 
| requires std::unsigned_integral< std::remove_reference_t< U > > Saturated & | operator+= (const Saturated< U > &other) | 
|  | 
| template<typename U > | 
| requires std::signed_integral< std::remove_reference_t< U > > Saturated & | operator+= (const Saturated< U > &other) | 
|  | 
| template<typename U > | 
| requires std::unsigned_integral< std::remove_reference_t< U > > Saturated & | operator-= (const Saturated< U > &other) | 
|  | 
| template<typename U > | 
| requires std::signed_integral< std::remove_reference_t< U > > Saturated & | operator-= (const Saturated< U > &other) | 
|  | 
| template<typename U > | 
| requires std::unsigned_integral< std::remove_reference_t< U > > Saturated & | operator*= (const Saturated< U > &other) | 
|  | 
| template<typename U > | 
| requires std::signed_integral< std::remove_reference_t< U > > Saturated & | operator*= (const Saturated< U > &other) | 
|  | 
| template<typename U > | 
| requires std::unsigned_integral< std::remove_reference_t< U > > Saturated & | operator*= (const U &v) | 
|  | 
| template<typename U > | 
| requires std::signed_integral< std::remove_reference_t< U > > Saturated & | operator*= (const U &v) | 
|  | 
| template<typename U > | 
| requires std::unsigned_integral< std::remove_reference_t< U > > TP | operator+ (const Saturated< U > &other) | 
|  | 
| template<typename U > | 
| requires std::signed_integral< std::remove_reference_t< U > > TP | operator+ (const Saturated< U > &other) | 
|  | 
| template<typename U > | 
| requires std::unsigned_integral< std::remove_reference_t< U > > TP | operator- (const Saturated< U > &other) | 
|  | 
| template<typename U > | 
| requires std::signed_integral< std::remove_reference_t< U > > TP | operator- (const Saturated< U > &other) | 
|  | 
| TP | operator* (const Saturated< T > &other) | 
|  | 
| TS | operator- () | 
|  | 
| void | absolute () | 
|  | 
template<typename T>
class modm::Saturated< T >
Saturation arithmetic building on 'Integer-Overflow-Builtins' Implementation works with integer, unsigned integer and float or reference to them. Operators work with the same types or Saturated types of them. 
- See also
- https://gcc.gnu.org/onlinedocs/gcc/Integer-Overflow-Builtins.html 
- 
https://en.wikipedia.org/wiki/Saturation_arithmetic
- Author
- Thomas Sommer