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.
Classes | Namespaces | Typedefs | Functions
length.h File Reference
#include <limits>
#include <ratio>
#include <stdexcept>
#include "detail/number_parser.h"
#include "detail/unit.h"
#include "detail/unit_symbol.h"
Include dependency graph for length.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SI::unit_symbol< 'L', std::ratio< 1 > >
 
struct  SI::unit_symbol< 'L', _ratio >
 

Namespaces

 SI
 
 SI::literals
 

Typedefs

template<typename _type , typename _ratio >
using SI::length_t = detail::unit_t< 'L', std::ratio< 1 >, _type, _ratio >
 
template<typename _type >
using SI::atto_metre_t = length_t< _type, std::atto >
 
template<typename _type >
using SI::femto_metre_t = length_t< _type, std::femto >
 
template<typename _type >
using SI::pico_metre_t = length_t< _type, std::pico >
 
template<typename _type >
using SI::nano_metre_t = length_t< _type, std::nano >
 
template<typename _type >
using SI::micro_metre_t = length_t< _type, std::micro >
 
template<typename _type >
using SI::milli_metre_t = length_t< _type, std::milli >
 
template<typename _type >
using SI::centi_metre_t = length_t< _type, std::centi >
 
template<typename _type >
using SI::metre_t = length_t< _type, std::ratio< 1 > >
 
template<typename _type >
using SI::kilo_metre_t = length_t< _type, std::kilo >
 
template<typename _type >
using SI::mega_metre_t = length_t< _type, std::mega >
 
template<typename _type >
using SI::giga_metre_t = length_t< _type, std::giga >
 
template<typename _type >
using SI::tera_metre_t = length_t< _type, std::tera >
 
template<typename _type >
using SI::peta_metre_t = length_t< _type, std::peta >
 
template<typename _type >
using SI::exa_metre_t = length_t< _type, std::exa >
 

Functions

template<char... _digits>
constexpr atto_metre_t< int64_t > SI::literals::operator""_am ()
 
template<char... _digits>
constexpr femto_metre_t< int64_t > SI::literals::operator""_fm ()
 
template<char... _digits>
constexpr pico_metre_t< int64_t > SI::literals::operator""_pm ()
 
template<char... _digits>
constexpr nano_metre_t< int64_t > SI::literals::operator""_nm ()
 
template<char... _digits>
constexpr micro_metre_t< int64_t > SI::literals::operator""_um ()
 
template<char... _digits>
constexpr milli_metre_t< int64_t > SI::literals::operator""_mm ()
 
template<char... _digits>
constexpr centi_metre_t< int64_t > SI::literals::operator""_cm ()
 
template<char... _digits>
constexpr metre_t< int64_t > SI::literals::operator""_m ()
 
template<char... _digits>
constexpr kilo_metre_t< int64_t > SI::literals::operator""_km ()
 
template<char... _digits>
constexpr mega_metre_t< int64_t > SI::literals::operator""_Mm ()
 
template<char... _digits>
constexpr giga_metre_t< int64_t > SI::literals::operator""_Gm ()
 
template<char... _digits>
constexpr tera_metre_t< int64_t > SI::literals::operator""_Tm ()
 
template<char... _digits>
constexpr peta_metre_t< int64_t > SI::literals::operator""_Pm ()
 
template<char... _digits>
constexpr exa_metre_t< int64_t > SI::literals::operator""_Em ()
 
constexpr atto_metre_t< long double > SI::literals::operator""_am (long double value)
 
constexpr femto_metre_t< long double > SI::literals::operator""_fm (long double value)
 
constexpr pico_metre_t< long double > SI::literals::operator""_pm (long double value)
 
constexpr nano_metre_t< long double > SI::literals::operator""_nm (long double value)
 
constexpr micro_metre_t< long double > SI::literals::operator""_um (long double value)
 
constexpr milli_metre_t< long double > SI::literals::operator""_mm (long double value)
 
constexpr centi_metre_t< long double > SI::literals::operator""_cm (long double value)
 
constexpr metre_t< long double > SI::literals::operator""_m (long double value)
 
constexpr kilo_metre_t< long double > SI::literals::operator""_km (long double value)
 
constexpr mega_metre_t< long double > SI::literals::operator""_Mm (long double value)
 
constexpr giga_metre_t< long double > SI::literals::operator""_Gm (long double value)
 
constexpr tera_metre_t< long double > SI::literals::operator""_Tm (long double value)
 
constexpr peta_metre_t< long double > SI::literals::operator""_Pm (long double value)
 
constexpr exa_metre_t< long double > SI::literals::operator""_Em (long double value)