Mantid
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Attributes | Friends | List of all members
std::wide_integer< Bits, Signed > Class Template Reference

#include <WideInt.h>

Public Types

template<class T >
using __integral_not_wide_integer_class = typename std::enable_if< std::is_arithmetic< T >::value, T >::type
 
using base_type = uint32_t
 
using signed_base_type = int32_t
 

Public Member Functions

constexpr operator bool () const noexcept
 
constexpr operator double () const noexcept
 
constexpr operator float () const noexcept
 
constexpr operator long double () const noexcept
 
template<class T , class = __integral_not_wide_integer_class<T>>
constexpr operator T () const noexcept
 
template<typename Integral >
constexpr wide_integer< Bits, Signed > & operator%= (const Integral &rhs)
 
template<typename Integral >
constexpr wide_integer< Bits, Signed > & operator&= (const Integral &rhs) noexcept
 
template<typename Arithmetic >
constexpr wide_integer< Bits, Signed > & operator*= (const Arithmetic &rhs)
 
constexpr wide_integer< Bits, Signed > & operator++ () noexcept(is_same< Signed, unsigned >::value)
 
constexpr wide_integer< Bits, Signed > operator++ (int) noexcept(is_same< Signed, unsigned >::value)
 
template<typename Arithmetic >
constexpr wide_integer< Bits, Signed > & operator+= (const Arithmetic &rhs) noexcept(is_same< Signed, unsigned >::value)
 
constexpr wide_integer< Bits, Signed > & operator-- () noexcept(is_same< Signed, unsigned >::value)
 
constexpr wide_integer< Bits, Signed > operator-- (int) noexcept(is_same< Signed, unsigned >::value)
 
template<typename Arithmetic >
constexpr wide_integer< Bits, Signed > & operator-= (const Arithmetic &rhs) noexcept(is_same< Signed, unsigned >::value)
 
template<typename Arithmetic >
constexpr wide_integer< Bits, Signed > & operator/= (const Arithmetic &rhs)
 
template<typename T2 , typename = std::enable_if<std::is_integral<T2>::value && std::is_unsigned<T2>::value>>
constexpr wide_integer< Bits, Signed > & operator<<= (T2 n) noexcept
 
template<typename Arithmetic >
constexpr wide_integer< Bits, Signed > & operator= (Arithmetic rhs) noexcept
 
template<size_t Bits2, typename Signed2 >
constexpr wide_integer< Bits, Signed > & operator= (const wide_integer< Bits2, Signed2 > &rhs) noexcept
 
template<typename T2 , typename = std::enable_if<std::is_integral<T2>::value && std::is_unsigned<T2>::value>>
constexpr wide_integer< Bits, Signed > & operator>>= (T2 n) noexcept
 
template<typename Integral >
constexpr wide_integer< Bits, Signed > & operator^= (const Integral &rhs) noexcept
 
template<typename Integral >
constexpr wide_integer< Bits, Signed > & operator|= (const Integral &rhs) noexcept
 
base_typeptr ()
 
const base_typeptr () const
 
 wide_integer ()=default
 
template<size_t Bits2, typename Signed2 >
constexpr wide_integer (const wide_integer< Bits2, Signed2 > &rhs) noexcept
 
template<typename T >
constexpr wide_integer (T rhs) noexcept
 

Private Attributes

base_type m_arr [_impl::arr_size]
 

Friends

class numeric_limits< wide_integer< Bits, signed > >
 
class numeric_limits< wide_integer< Bits, unsigned > >
 
template<size_t Bits2, typename Signed2 >
class wide_integer
 

Detailed Description

template<size_t Bits, typename Signed>
class std::wide_integer< Bits, Signed >

Definition at line 70 of file WideInt.h.

Member Typedef Documentation

◆ __integral_not_wide_integer_class

template<size_t Bits, typename Signed >
template<class T >
using std::wide_integer< Bits, Signed >::__integral_not_wide_integer_class = typename std::enable_if<std::is_arithmetic<T>::value, T>::type

Definition at line 120 of file WideInt.h.

◆ base_type

template<size_t Bits, typename Signed >
using std::wide_integer< Bits, Signed >::base_type = uint32_t

Definition at line 72 of file WideInt.h.

◆ signed_base_type

template<size_t Bits, typename Signed >
using std::wide_integer< Bits, Signed >::signed_base_type = int32_t

Definition at line 73 of file WideInt.h.

Constructor & Destructor Documentation

◆ wide_integer() [1/3]

template<size_t Bits, typename Signed >
std::wide_integer< Bits, Signed >::wide_integer ( )
default

◆ wide_integer() [2/3]

template<size_t Bits, typename Signed >
template<typename T >
constexpr std::wide_integer< Bits, Signed >::wide_integer ( rhs)
constexprnoexcept

◆ wide_integer() [3/3]

template<size_t Bits, typename Signed >
template<size_t Bits2, typename Signed2 >
constexpr std::wide_integer< Bits, Signed >::wide_integer ( const wide_integer< Bits2, Signed2 > &  rhs)
constexprnoexcept

Member Function Documentation

◆ operator bool()

template<size_t Bits, typename Signed >
constexpr std::wide_integer< Bits, Signed >::operator bool ( ) const
explicitconstexprnoexcept

◆ operator double()

template<size_t Bits, typename Signed >
constexpr std::wide_integer< Bits, Signed >::operator double ( ) const
constexprnoexcept

◆ operator float()

template<size_t Bits, typename Signed >
constexpr std::wide_integer< Bits, Signed >::operator float ( ) const
constexprnoexcept

◆ operator long double()

template<size_t Bits, typename Signed >
constexpr std::wide_integer< Bits, Signed >::operator long double ( ) const
constexprnoexcept

◆ operator T()

template<size_t Bits, typename Signed >
template<class T , class = __integral_not_wide_integer_class<T>>
constexpr std::wide_integer< Bits, Signed >::operator T ( ) const
constexprnoexcept

◆ operator%=()

template<size_t Bits, typename Signed >
template<typename Integral >
constexpr wide_integer< Bits, Signed > & std::wide_integer< Bits, Signed >::operator%= ( const Integral &  rhs)
constexpr

◆ operator&=()

template<size_t Bits, typename Signed >
template<typename Integral >
constexpr wide_integer< Bits, Signed > & std::wide_integer< Bits, Signed >::operator&= ( const Integral &  rhs)
constexprnoexcept

◆ operator*=()

template<size_t Bits, typename Signed >
template<typename Arithmetic >
constexpr wide_integer< Bits, Signed > & std::wide_integer< Bits, Signed >::operator*= ( const Arithmetic &  rhs)
constexpr

◆ operator++() [1/2]

template<size_t Bits, typename Signed >
constexpr wide_integer< Bits, Signed > & std::wide_integer< Bits, Signed >::operator++ ( )
constexprnoexcept

◆ operator++() [2/2]

template<size_t Bits, typename Signed >
constexpr wide_integer< Bits, Signed > std::wide_integer< Bits, Signed >::operator++ ( int  )
constexprnoexcept

◆ operator+=()

template<size_t Bits, typename Signed >
template<typename Arithmetic >
constexpr wide_integer< Bits, Signed > & std::wide_integer< Bits, Signed >::operator+= ( const Arithmetic &  rhs)
constexprnoexcept

◆ operator--() [1/2]

template<size_t Bits, typename Signed >
constexpr wide_integer< Bits, Signed > & std::wide_integer< Bits, Signed >::operator-- ( )
constexprnoexcept

◆ operator--() [2/2]

template<size_t Bits, typename Signed >
constexpr wide_integer< Bits, Signed > std::wide_integer< Bits, Signed >::operator-- ( int  )
constexprnoexcept

◆ operator-=()

template<size_t Bits, typename Signed >
template<typename Arithmetic >
constexpr wide_integer< Bits, Signed > & std::wide_integer< Bits, Signed >::operator-= ( const Arithmetic &  rhs)
constexprnoexcept

◆ operator/=()

template<size_t Bits, typename Signed >
template<typename Arithmetic >
constexpr wide_integer< Bits, Signed > & std::wide_integer< Bits, Signed >::operator/= ( const Arithmetic &  rhs)
constexpr

◆ operator<<=()

template<size_t Bits, typename Signed >
template<typename T2 , typename = std::enable_if<std::is_integral<T2>::value && std::is_unsigned<T2>::value>>
constexpr wide_integer< Bits, Signed > & std::wide_integer< Bits, Signed >::operator<<= ( T2  n)
constexprnoexcept

◆ operator=() [1/2]

template<size_t Bits, typename Signed >
template<typename Arithmetic >
constexpr wide_integer< Bits, Signed > & std::wide_integer< Bits, Signed >::operator= ( Arithmetic  rhs)
constexprnoexcept

◆ operator=() [2/2]

template<size_t Bits, typename Signed >
template<size_t Bits2, typename Signed2 >
constexpr wide_integer< Bits, Signed > & std::wide_integer< Bits, Signed >::operator= ( const wide_integer< Bits2, Signed2 > &  rhs)
constexprnoexcept

◆ operator>>=()

template<size_t Bits, typename Signed >
template<typename T2 , typename = std::enable_if<std::is_integral<T2>::value && std::is_unsigned<T2>::value>>
constexpr wide_integer< Bits, Signed > & std::wide_integer< Bits, Signed >::operator>>= ( T2  n)
constexprnoexcept

◆ operator^=()

template<size_t Bits, typename Signed >
template<typename Integral >
constexpr wide_integer< Bits, Signed > & std::wide_integer< Bits, Signed >::operator^= ( const Integral &  rhs)
constexprnoexcept

◆ operator|=()

template<size_t Bits, typename Signed >
template<typename Integral >
constexpr wide_integer< Bits, Signed > & std::wide_integer< Bits, Signed >::operator|= ( const Integral &  rhs)
constexprnoexcept

◆ ptr() [1/2]

template<size_t Bits, typename Signed >
base_type * std::wide_integer< Bits, Signed >::ptr ( )
inline

Definition at line 130 of file WideInt.h.

References std::wide_integer< Bits, Signed >::m_arr.

◆ ptr() [2/2]

template<size_t Bits, typename Signed >
const base_type * std::wide_integer< Bits, Signed >::ptr ( ) const
inline

Definition at line 129 of file WideInt.h.

References std::wide_integer< Bits, Signed >::m_arr.

Friends And Related Function Documentation

◆ numeric_limits< wide_integer< Bits, signed > >

template<size_t Bits, typename Signed >
friend class numeric_limits< wide_integer< Bits, signed > >
friend

Definition at line 133 of file WideInt.h.

◆ numeric_limits< wide_integer< Bits, unsigned > >

template<size_t Bits, typename Signed >
friend class numeric_limits< wide_integer< Bits, unsigned > >
friend

Definition at line 133 of file WideInt.h.

◆ wide_integer

template<size_t Bits, typename Signed >
template<size_t Bits2, typename Signed2 >
friend class wide_integer
friend

Definition at line 133 of file WideInt.h.

Member Data Documentation

◆ m_arr

template<size_t Bits, typename Signed >
base_type std::wide_integer< Bits, Signed >::m_arr[_impl::arr_size]
private

Definition at line 138 of file WideInt.h.

Referenced by std::wide_integer< Bits, Signed >::ptr().


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