Nix 2.93.3
Lix: A modern, delicious implementation of the Nix 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: