SI  2.5.4
A header only c++ library that provides type safety and user defined literals for handling physical values defined in the International System of Units.
Public Types | Public Member Functions | List of all members
SI::detail::unit_t< _symbol, _exponent, _type, _ratio > Struct Template Reference

base template class for holding values of type _type to be multiplied with a ratio _ratio More...

#include <unit.h>

Public Types

using ratio = _ratio
 
using internal_type = _type
 
using exponent = _exponent
 
using symbol = std::integral_constant< char, _symbol >
 

Public Member Functions

constexpr unit_t (_type v)
 Construct with value v. More...
 
constexpr unit_t ()=default
 
constexpr unit_t (const unit_t &)=default
 
constexpr unit_t (unit_t &&)=default
 
template<typename _type_rhs >
constexpr unit_t (const unit_t< _symbol, _exponent, _type_rhs, _ratio > &rhs)
 construct from other unit with implicitly convertible type More...
 
 ~unit_t ()=default
 
template<typename _rhs_type , typename _rhs_ratio >
constexpr unit_t (const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &rhs)
 
template<typename _rhs_ratio >
constexpr unit_t (unit_t< _symbol, _exponent, _type, _rhs_ratio > &&rhs)
 
constexpr _type value () const
 returns the stored value as raw type More...
 
template<typename _unit_rhs >
constexpr _unit_rhs as () const
 
template<template< typename _type_rhs > typename _unit_rhs>
constexpr _unit_rhs< _type > as () const
 
void setValue (_type v)
 
constexpr unit_toperator= (const unit_t &rhs)=default
 Assignment for same ratio. More...
 
constexpr unit_toperator= (unit_t &&rhs)=default
 Move assignment for same ratio. More...
 
template<typename _rhs_ratio , std::enable_if_t<!std::ratio_equal_v< _rhs_ratio, _ratio >> * = nullptr>
constexpr unit_toperator= (const unit_t< _symbol, _exponent, _type, _rhs_ratio > &rhs)
 Assignment of same unit but different ratio. More...
 
template<typename _rhs_ratio , std::enable_if_t<!std::ratio_equal_v< _rhs_ratio, _ratio >> * = nullptr>
constexpr unit_toperator= (unit_t< _symbol, _exponent, _type, _rhs_ratio > &&rhs)
 Move assignment of same unit but different ratio. More...
 
template<typename _rhs_type , typename _rhs_ratio >
constexpr bool operator== (const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &rhs) const
 
template<typename _rhs_type , typename _rhs_ratio >
constexpr bool operator!= (const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &rhs) const
 compares two values, considers different ratios. More...
 
template<typename _rhs_type , typename _rhs_ratio >
constexpr bool operator< (const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &rhs) const
 
template<typename _rhs_type , typename _rhs_ratio >
constexpr bool operator<= (const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &rhs) const
 
template<typename _rhs_type , typename _rhs_ratio >
constexpr bool operator> (const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &rhs) const
 
template<typename _rhs_type , typename _rhs_ratio >
constexpr bool operator>= (const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &rhs) const
 
constexpr unit_t operator* (const _type f) const
 multiply with a non-unit scalar More...
 
template<typename _rhs_exponent , typename _rhs_type >
constexpr auto operator* (const unit_t< _symbol, _rhs_exponent, _rhs_type, _ratio > &rhs) const
 multiply with an unit of the same ratio More...
 
template<typename _rhs_exponent , typename _rhs_ratio , typename _rhs_type >
constexpr auto operator* (const unit_t< _symbol, _rhs_exponent, _rhs_type, _rhs_ratio > &rhs) const
 
constexpr unit_toperator*= (const _type scalar)
 multiply with a non-unit scalar More...
 
constexpr unit_t operator/ (const _type f) const
 divide by a non-unit scalar More...
 
template<typename _rhs_exponent , typename _rhs_type , std::enable_if_t< std::ratio_not_equal_v< _rhs_exponent, _exponent >> * = nullptr>
constexpr auto operator/ (const unit_t< _symbol, _rhs_exponent, _rhs_type, _ratio > &rhs) const
 
template<typename _rhs_exponent , typename _rhs_type , typename _rhs_ratio , std::enable_if_t< std::ratio_not_equal_v< _rhs_exponent, _exponent >> * = nullptr>
constexpr auto operator/ (const unit_t< _symbol, _rhs_exponent, _rhs_type, _rhs_ratio > &rhs) const
 
template<typename _rhs_type >
constexpr _type operator/ (const unit_t< _symbol, _exponent, _rhs_type, _ratio > &rhs)
 divide whit same unit result is a scalar More...
 
template<typename _rhs_exponent , typename _rhs_type , typename _rhs_ratio , std::enable_if_t< std::ratio_equal_v< _rhs_exponent, exponent >> * = nullptr>
constexpr _type operator/ (const unit_t< _symbol, _rhs_exponent, _rhs_type, _rhs_ratio > &rhs) const
 
constexpr unit_toperator/= (const _type scalar)
 divide with a non-unit scalar More...
 
template<typename _rhs_type , typename _rhs_ratio >
constexpr unit_t operator+ (const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &rhs) const
 adds two values, returning type is type of lhs More...
 
constexpr unit_toperator+= (const unit_t &rhs)
 add-assign value of the same unit More...
 
template<typename _rhs_type , typename _rhs_ratio , std::enable_if_t<!std::ratio_equal_v< _rhs_ratio, _ratio >> * = nullptr>
constexpr unit_toperator+= (const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &rhs)
 add value of the same type but possibly different ratio More...
 
template<typename _rhs_type , typename _rhs_ratio >
constexpr unit_t operator- (const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &rhs) const
 subtracts two values, returning type is type of lhs More...
 
constexpr unit_toperator-= (const unit_t &rhs)
 Subtract-assign value of the same unit. More...
 
template<typename _rhs_type , typename _rhs_ratio , std::enable_if<!std::ratio_equal_v< _rhs_ratio, _ratio >> * = nullptr>
constexpr unit_toperator-= (const unit_t< _symbol, _exponent, _type, _rhs_ratio > &rhs)
 subtract value of the same type but possibly different ratio More...
 
constexpr unit_t operator- () const
 negate operation More...
 
unit_toperator++ ()
 increment by prefix ++ More...
 
unit_t operator++ (int)
 increment by postfix ++ More...
 
unit_toperator-- ()
 decrement by prefix – More...
 
unit_t operator-- (int)
 decrement by postfix – More...
 

Detailed Description

template<char _symbol, typename _exponent, typename _type, typename _ratio = std::ratio<1>>
struct SI::detail::unit_t< _symbol, _exponent, _type, _ratio >

base template class for holding values of type _type to be multiplied with a ratio _ratio

Todo:

add in-place unit_cast for move operators

add logarithmic units (decibel)

add constants for speed of light, planck constant, elementary charge, boltzmann constant, avogadro constant and luminous efficacy of monochromatic radiation of frequency

Template Parameters
_symboldimension symbol of the unit (see https://en.wikipedia.org/wiki/SI_base_unit)
_ratioRatio in relation to the base unit of a SI unit
_typeinternal representation of the value
_exponentthe exponent to the unit (i.e. length == m^1, area == m^2, volume = m^3)

Member Typedef Documentation

◆ exponent

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
using SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::exponent = _exponent

◆ internal_type

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
using SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::internal_type = _type

◆ ratio

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
using SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::ratio = _ratio

◆ symbol

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
using SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::symbol = std::integral_constant<char, _symbol>

Constructor & Destructor Documentation

◆ unit_t() [1/7]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
constexpr SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::unit_t ( _type  v)
inlineexplicitconstexpr

Construct with value v.

◆ unit_t() [2/7]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
constexpr SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::unit_t ( )
constexprdefault

◆ unit_t() [3/7]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
constexpr SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::unit_t ( const unit_t< _symbol, _exponent, _type, _ratio > &  )
constexprdefault

◆ unit_t() [4/7]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
constexpr SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::unit_t ( unit_t< _symbol, _exponent, _type, _ratio > &&  )
constexprdefault

◆ unit_t() [5/7]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _type_rhs >
constexpr SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::unit_t ( const unit_t< _symbol, _exponent, _type_rhs, _ratio > &  rhs)
inlineconstexpr

construct from other unit with implicitly convertible type

◆ ~unit_t()

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::~unit_t ( )
default

◆ unit_t() [6/7]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_type , typename _rhs_ratio >
constexpr SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::unit_t ( const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &  rhs)
inlineconstexpr

◆ unit_t() [7/7]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_ratio >
constexpr SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::unit_t ( unit_t< _symbol, _exponent, _type, _rhs_ratio > &&  rhs)
inlineconstexpr

Member Function Documentation

◆ as() [1/2]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _unit_rhs >
constexpr _unit_rhs SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::as ( ) const
inlineconstexpr

returns a new instance of the unit with a differend value and explicit specified underlying type

◆ as() [2/2]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<template< typename _type_rhs > typename _unit_rhs>
constexpr _unit_rhs<_type> SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::as ( ) const
inlineconstexpr

returns a new instance of the unit with a differend value with the same underlying type

◆ operator!=()

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_type , typename _rhs_ratio >
constexpr bool SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator!= ( const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &  rhs) const
inlineconstexpr

compares two values, considers different ratios.

◆ operator*() [1/3]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
constexpr unit_t SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator* ( const _type  f) const
inlineconstexpr

multiply with a non-unit scalar

◆ operator*() [2/3]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_exponent , typename _rhs_type >
constexpr auto SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator* ( const unit_t< _symbol, _rhs_exponent, _rhs_type, _ratio > &  rhs) const
inlineconstexpr

multiply with an unit of the same ratio

◆ operator*() [3/3]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_exponent , typename _rhs_ratio , typename _rhs_type >
constexpr auto SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator* ( const unit_t< _symbol, _rhs_exponent, _rhs_type, _rhs_ratio > &  rhs) const
inlineconstexpr

multiplication multiply with a same unit, with different exponent and different ratio the exponents this and rhs are added, the resulting ratio the ratio multiplied.

◆ operator*=()

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
constexpr unit_t& SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator*= ( const _type  scalar)
inlineconstexpr

multiply with a non-unit scalar

◆ operator+()

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_type , typename _rhs_ratio >
constexpr unit_t SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator+ ( const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &  rhs) const
inlineconstexpr

adds two values, returning type is type of lhs

◆ operator++() [1/2]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
unit_t& SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator++ ( )
inline

increment by prefix ++

◆ operator++() [2/2]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
unit_t SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator++ ( int  )
inline

increment by postfix ++

◆ operator+=() [1/2]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
constexpr unit_t& SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator+= ( const unit_t< _symbol, _exponent, _type, _ratio > &  rhs)
inlineconstexpr

add-assign value of the same unit

◆ operator+=() [2/2]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_type , typename _rhs_ratio , std::enable_if_t<!std::ratio_equal_v< _rhs_ratio, _ratio >> * = nullptr>
constexpr unit_t& SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator+= ( const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &  rhs)
inlineconstexpr

add value of the same type but possibly different ratio

◆ operator-() [1/2]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
constexpr unit_t SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator- ( ) const
inlineconstexpr

negate operation

◆ operator-() [2/2]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_type , typename _rhs_ratio >
constexpr unit_t SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator- ( const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &  rhs) const
inlineconstexpr

subtracts two values, returning type is type of lhs

◆ operator--() [1/2]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
unit_t& SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator-- ( )
inline

decrement by prefix –

◆ operator--() [2/2]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
unit_t SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator-- ( int  )
inline

decrement by postfix –

◆ operator-=() [1/2]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
constexpr unit_t& SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator-= ( const unit_t< _symbol, _exponent, _type, _ratio > &  rhs)
inlineconstexpr

Subtract-assign value of the same unit.

◆ operator-=() [2/2]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_type , typename _rhs_ratio , std::enable_if<!std::ratio_equal_v< _rhs_ratio, _ratio >> * = nullptr>
constexpr unit_t& SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator-= ( const unit_t< _symbol, _exponent, _type, _rhs_ratio > &  rhs)
inlineconstexpr

subtract value of the same type but possibly different ratio

◆ operator/() [1/5]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
constexpr unit_t SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator/ ( const _type  f) const
inlineconstexpr

divide by a non-unit scalar

◆ operator/() [2/5]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_type >
constexpr _type SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator/ ( const unit_t< _symbol, _exponent, _rhs_type, _ratio > &  rhs)
inlineconstexpr

divide whit same unit result is a scalar

◆ operator/() [3/5]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_exponent , typename _rhs_type , std::enable_if_t< std::ratio_not_equal_v< _rhs_exponent, _exponent >> * = nullptr>
constexpr auto SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator/ ( const unit_t< _symbol, _rhs_exponent, _rhs_type, _ratio > &  rhs) const
inlineconstexpr

divide with same unit with same ratio but not the same exponent

Returns
unit with exponents subtracted from each others

◆ operator/() [4/5]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_exponent , typename _rhs_type , typename _rhs_ratio , std::enable_if_t< std::ratio_not_equal_v< _rhs_exponent, _exponent >> * = nullptr>
constexpr auto SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator/ ( const unit_t< _symbol, _rhs_exponent, _rhs_type, _rhs_ratio > &  rhs) const
inlineconstexpr

divide with a same unit but different ratios the ratio of the result is the gcd of the two ratios and the exponents are subtracted

◆ operator/() [5/5]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_exponent , typename _rhs_type , typename _rhs_ratio , std::enable_if_t< std::ratio_equal_v< _rhs_exponent, exponent >> * = nullptr>
constexpr _type SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator/ ( const unit_t< _symbol, _rhs_exponent, _rhs_type, _rhs_ratio > &  rhs) const
inlineconstexpr

if the same units of the same exponent but different ratio are divided then the result is a scalar

◆ operator/=()

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
constexpr unit_t& SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator/= ( const _type  scalar)
inlineconstexpr

divide with a non-unit scalar

◆ operator<()

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_type , typename _rhs_ratio >
constexpr bool SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator< ( const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &  rhs) const
inlineconstexpr

◆ operator<=()

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_type , typename _rhs_ratio >
constexpr bool SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator<= ( const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &  rhs) const
inlineconstexpr

◆ operator=() [1/4]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
constexpr unit_t& SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator= ( const unit_t< _symbol, _exponent, _type, _ratio > &  rhs)
constexprdefault

Assignment for same ratio.

◆ operator=() [2/4]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_ratio , std::enable_if_t<!std::ratio_equal_v< _rhs_ratio, _ratio >> * = nullptr>
constexpr unit_t& SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator= ( const unit_t< _symbol, _exponent, _type, _rhs_ratio > &  rhs)
inlineconstexpr

Assignment of same unit but different ratio.

◆ operator=() [3/4]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
constexpr unit_t& SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator= ( unit_t< _symbol, _exponent, _type, _ratio > &&  rhs)
constexprdefault

Move assignment for same ratio.

◆ operator=() [4/4]

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_ratio , std::enable_if_t<!std::ratio_equal_v< _rhs_ratio, _ratio >> * = nullptr>
constexpr unit_t& SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator= ( unit_t< _symbol, _exponent, _type, _rhs_ratio > &&  rhs)
inlineconstexpr

Move assignment of same unit but different ratio.

◆ operator==()

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_type , typename _rhs_ratio >
constexpr bool SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator== ( const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &  rhs) const
inlineconstexpr

Comparison operator takes considers different ratios, i.e. 1000 micro == 1 milli

◆ operator>()

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_type , typename _rhs_ratio >
constexpr bool SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator> ( const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &  rhs) const
inlineconstexpr

◆ operator>=()

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
template<typename _rhs_type , typename _rhs_ratio >
constexpr bool SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::operator>= ( const unit_t< _symbol, _exponent, _rhs_type, _rhs_ratio > &  rhs) const
inlineconstexpr

◆ setValue()

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
void SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::setValue ( _type  v)
inline
Todo:
set as friend to the stream-function

◆ value()

template<char _symbol, typename _exponent , typename _type , typename _ratio = std::ratio<1>>
constexpr _type SI::detail::unit_t< _symbol, _exponent, _type, _ratio >::value ( ) const
inlineconstexpr

returns the stored value as raw type


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