cMHN 1.2
C++ library for learning MHNs with pRC
Loading...
Searching...
No Matches
pRC::Integer< S, Width > Class Template Reference

#include <integer.hpp>

Public Types

using Fundamental
 
template<Size C>
using ChangeSize = Float<C>
 
template<Bool C>
using ChangeSigned = Integer<C, W>
 

Public Member Functions

 ~Integer ()=default
 
constexpr Integer (Integer const &)=default
 
constexpr Integer (Integer &&)=default
 
constexpr Integeroperator= (Integer const &) &=default
 
constexpr Integeroperator= (Integer &&) &=default
 
constexpr Integer ()=default
 
template<class U >
requires IsConstructible<Fundamental, U>
constexpr Integer (U const basic)
 
template<IsValue U>
constexpr Integer (U const &value)
 
constexpr Integer (Zero<> const)
 
constexpr Integer (Unit<> const)
 
constexpr Integer (Identity<> const)
 
template<class U >
requires IsAssignable<Fundamental, U>
constexpr auto & operator= (U const basic) &
 
template<IsValue U>
constexpr auto & operator= (U const &value) &
 
constexpr auto & operator= (Zero<> const) &
 
constexpr auto & operator= (Unit<> const) &
 
constexpr auto & operator= (Identity<> const) &
 
constexpr decltype(auto) operator() () &&
 
constexpr decltype(auto) operator() () const &&
 
constexpr auto & operator() () &
 
constexpr auto & operator() () const &
 
constexpr operator Fundamental () const
 
template<class X >
requires IsInvocable<Add, Integer &, X>
constexpr auto & operator+= (X &&rhs) &
 
template<class X >
requires IsInvocable<Sub, Integer &, X>
constexpr auto & operator-= (X &&rhs) &
 
template<class X >
requires IsInvocable<Mul, Integer &, X>
constexpr auto & operator*= (X &&rhs) &
 
template<class X >
requires IsInvocable<Div, Integer &, X>
constexpr auto & operator/= (X &&rhs) &
 
template<class X >
requires IsInvocable<Mod, Integer &, X>
constexpr auto & operator%= (X &&rhs) &
 

Static Public Attributes

static constexpr Size Width = W
 
static constexpr Bool Signed = S
 

Member Typedef Documentation

◆ ChangeSigned

template<Bool S = true, Size Width = sizeof(int) * 8>
template<Bool C>
using pRC::Integer< S, Width >::ChangeSigned = Integer<C, W>

◆ ChangeSize

template<Bool S = true, Size Width = sizeof(int) * 8>
template<Size C>
using pRC::Integer< S, Width >::ChangeSize = Float<C>

◆ Fundamental

template<Bool S = true, Size Width = sizeof(int) * 8>
using pRC::Integer< S, Width >::Fundamental
Initial value:
Conditional<S,
Conditional<W == 8, std::int8_t,
Conditional<W == 16, std::int16_t,
Conditional<W == 32, std::int32_t,
Conditional<W == 64, std::int64_t, Undefined>>>>,
Conditional<W == 8, std::uint8_t,
Conditional<W == 16, std::uint16_t,
Conditional<W == 32, std::uint32_t,
Conditional<W == 64, std::uint64_t, Undefined>>>>>
TN::Subscripts S
Definition externs_nonTT.hpp:9

Constructor & Destructor Documentation

◆ ~Integer()

template<Bool S = true, Size Width = sizeof(int) * 8>
pRC::Integer< S, Width >::~Integer ( )
default

◆ Integer() [1/8]

template<Bool S = true, Size Width = sizeof(int) * 8>
pRC::Integer< S, Width >::Integer ( Integer< S, Width > const & )
constexprdefault

◆ Integer() [2/8]

template<Bool S = true, Size Width = sizeof(int) * 8>
pRC::Integer< S, Width >::Integer ( Integer< S, Width > && )
constexprdefault

◆ Integer() [3/8]

template<Bool S = true, Size Width = sizeof(int) * 8>
pRC::Integer< S, Width >::Integer ( )
constexprdefault

◆ Integer() [4/8]

template<Bool S = true, Size Width = sizeof(int) * 8>
template<class U >
requires IsConstructible<Fundamental, U>
pRC::Integer< S, Width >::Integer ( U const basic)
inlineconstexpr

◆ Integer() [5/8]

template<Bool S = true, Size Width = sizeof(int) * 8>
template<IsValue U>
pRC::Integer< S, Width >::Integer ( U const & value)
inlineconstexpr

◆ Integer() [6/8]

template<Bool S = true, Size Width = sizeof(int) * 8>
pRC::Integer< S, Width >::Integer ( Zero<> const )
inlineconstexpr

◆ Integer() [7/8]

template<Bool S = true, Size Width = sizeof(int) * 8>
pRC::Integer< S, Width >::Integer ( Unit<> const )
inlineconstexpr

◆ Integer() [8/8]

template<Bool S = true, Size Width = sizeof(int) * 8>
pRC::Integer< S, Width >::Integer ( Identity<> const )
inlineconstexpr

Member Function Documentation

◆ operator Fundamental()

template<Bool S = true, Size Width = sizeof(int) * 8>
pRC::Integer< S, Width >::operator Fundamental ( ) const
inlineexplicitconstexpr

◆ operator%=()

template<Bool S = true, Size Width = sizeof(int) * 8>
template<class X >
requires IsInvocable<Mod, Integer &, X>
auto & pRC::Integer< S, Width >::operator%= ( X && rhs) &
inlineconstexpr

◆ operator()() [1/4]

template<Bool S = true, Size Width = sizeof(int) * 8>
auto & pRC::Integer< S, Width >::operator() ( ) &
inlineconstexpr

◆ operator()() [2/4]

template<Bool S = true, Size Width = sizeof(int) * 8>
decltype(auto) pRC::Integer< S, Width >::operator() ( ) &&
inlineconstexpr

◆ operator()() [3/4]

template<Bool S = true, Size Width = sizeof(int) * 8>
auto & pRC::Integer< S, Width >::operator() ( ) const &
inlineconstexpr

◆ operator()() [4/4]

template<Bool S = true, Size Width = sizeof(int) * 8>
decltype(auto) pRC::Integer< S, Width >::operator() ( ) const &&
inlineconstexpr

◆ operator*=()

template<Bool S = true, Size Width = sizeof(int) * 8>
template<class X >
requires IsInvocable<Mul, Integer &, X>
auto & pRC::Integer< S, Width >::operator*= ( X && rhs) &
inlineconstexpr

◆ operator+=()

template<Bool S = true, Size Width = sizeof(int) * 8>
template<class X >
requires IsInvocable<Add, Integer &, X>
auto & pRC::Integer< S, Width >::operator+= ( X && rhs) &
inlineconstexpr

◆ operator-=()

template<Bool S = true, Size Width = sizeof(int) * 8>
template<class X >
requires IsInvocable<Sub, Integer &, X>
auto & pRC::Integer< S, Width >::operator-= ( X && rhs) &
inlineconstexpr

◆ operator/=()

template<Bool S = true, Size Width = sizeof(int) * 8>
template<class X >
requires IsInvocable<Div, Integer &, X>
auto & pRC::Integer< S, Width >::operator/= ( X && rhs) &
inlineconstexpr

◆ operator=() [1/7]

template<Bool S = true, Size Width = sizeof(int) * 8>
auto & pRC::Integer< S, Width >::operator= ( Identity<> const ) &
inlineconstexpr

◆ operator=() [2/7]

template<Bool S = true, Size Width = sizeof(int) * 8>
Integer & pRC::Integer< S, Width >::operator= ( Integer< S, Width > && ) &
constexprdefault

◆ operator=() [3/7]

template<Bool S = true, Size Width = sizeof(int) * 8>
Integer & pRC::Integer< S, Width >::operator= ( Integer< S, Width > const & ) &
constexprdefault

◆ operator=() [4/7]

template<Bool S = true, Size Width = sizeof(int) * 8>
template<IsValue U>
auto & pRC::Integer< S, Width >::operator= ( U const & value) &
inlineconstexpr

◆ operator=() [5/7]

template<Bool S = true, Size Width = sizeof(int) * 8>
template<class U >
requires IsAssignable<Fundamental, U>
auto & pRC::Integer< S, Width >::operator= ( U const basic) &
inlineconstexpr

◆ operator=() [6/7]

template<Bool S = true, Size Width = sizeof(int) * 8>
auto & pRC::Integer< S, Width >::operator= ( Unit<> const ) &
inlineconstexpr

◆ operator=() [7/7]

template<Bool S = true, Size Width = sizeof(int) * 8>
auto & pRC::Integer< S, Width >::operator= ( Zero<> const ) &
inlineconstexpr

Member Data Documentation

◆ Signed

template<Bool S = true, Size Width = sizeof(int) * 8>
Bool pRC::Integer< S, Width >::Signed = S
staticconstexpr

◆ Width

template<Bool S = true, Size Width = sizeof(int) * 8>
Size pRC::Integer< S, Width >::Width = W
staticconstexpr

The documentation for this class was generated from the following files: