Nix 2.26.3
Nix, the purely functional package manager; unstable internal interfaces
 
Loading...
Searching...
No Matches
nix::checked::Checked< T > Struct Template Reference

#include <checked-arithmetic.hh>

Classes

class  Result
 

Public Types

enum class  OverflowKind { NoOverflow , Overflow , DivByZero }
 
using Inner = T
 

Public Member Functions

 Checked (T const value)
 
 Checked (Checked< T > const &other)=default
 
 Checked (Checked< T > &&other)=default
 
Checked< T > & operator= (Checked< T > const &other)=default
 
std::strong_ordering operator<=> (Checked< T > const &other) const =default
 
std::strong_ordering operator<=> (T const &other) const
 
 operator T () const
 
Result operator+ (Checked< T > const other) const
 
Result operator+ (T const other) const
 
Result operator- (Checked< T > const other) const
 
Result operator- (T const other) const
 
Result operator* (Checked< T > const other) const
 
Result operator* (T const other) const
 
Result operator/ (Checked< T > const other) const
 
Result operator/ (T const other) const
 

Public Attributes

value
 

Detailed Description

template<std::integral T>
struct nix::checked::Checked< T >

Numeric value enforcing checked arithmetic. Performing mathematical operations on such values will return a Result type which needs to be checked.

Member Function Documentation

◆ operator/()

template<std::integral T>
Result nix::checked::Checked< T >::operator/ ( T const other) const
inline

Performs a checked division.

If the right hand side is zero, the result is marked as a DivByZero and valueWrapping will throw.


The documentation for this struct was generated from the following file: