diff --git a/doc/README_8md.html b/doc/README_8md.html new file mode 100644 index 00000000..e6523da5 --- /dev/null +++ b/doc/README_8md.html @@ -0,0 +1,77 @@ + + +
+ + + + ++ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
Go to the source code of this file.
++Classes | |
struct | SI::unit_symbol< 'D', std::ratio< 1 > > |
struct | SI::unit_symbol< 'D', _ratio > |
+Namespaces | |
SI | |
SI::literals | |
+Typedefs | |
template<typename _type , class _ratio = std::ratio<1>> | |
using | SI::absorbed_dose_t = detail::unit_t< 'D', std::ratio< 1 >, _type, _ratio > |
template<typename _type > | |
using | SI::atto_gray_t = absorbed_dose_t< _type, std::atto > |
specific units More... | |
template<typename _type > | |
using | SI::femto_gray_t = absorbed_dose_t< _type, std::femto > |
template<typename _type > | |
using | SI::pico_gray_t = absorbed_dose_t< _type, std::pico > |
template<typename _type > | |
using | SI::nano_gray_t = absorbed_dose_t< _type, std::nano > |
template<typename _type > | |
using | SI::micro_gray_t = absorbed_dose_t< _type, std::micro > |
template<typename _type > | |
using | SI::milli_gray_t = absorbed_dose_t< _type, std::milli > |
template<typename _type > | |
using | SI::gray_t = absorbed_dose_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::kilo_gray_t = absorbed_dose_t< _type, std::kilo > |
template<typename _type > | |
using | SI::mega_gray_t = absorbed_dose_t< _type, std::mega > |
template<typename _type > | |
using | SI::giga_gray_t = absorbed_dose_t< _type, std::giga > |
template<typename _type > | |
using | SI::tera_gray_t = absorbed_dose_t< _type, std::tera > |
template<typename _type > | |
using | SI::peta_gray_t = absorbed_dose_t< _type, std::peta > |
template<typename _type > | |
using | SI::exa_gray_t = absorbed_dose_t< _type, std::exa > |
+Functions | |
template<char... _digits> | |
constexpr atto_gray_t< int64_t > | SI::literals::operator""_aGy () |
template<char... _digits> | |
constexpr femto_gray_t< int64_t > | SI::literals::operator""_fGy () |
template<char... _digits> | |
constexpr pico_gray_t< int64_t > | SI::literals::operator""_pGy () |
template<char... _digits> | |
constexpr nano_gray_t< int64_t > | SI::literals::operator""_nGy () |
template<char... _digits> | |
constexpr micro_gray_t< int64_t > | SI::literals::operator""_uGy () |
template<char... _digits> | |
constexpr milli_gray_t< int64_t > | SI::literals::operator""_mGy () |
template<char... _digits> | |
constexpr gray_t< int64_t > | SI::literals::operator""_Gy () |
template<char... _digits> | |
constexpr kilo_gray_t< int64_t > | SI::literals::operator""_kGy () |
template<char... _digits> | |
constexpr mega_gray_t< int64_t > | SI::literals::operator""_MGy () |
template<char... _digits> | |
constexpr giga_gray_t< int64_t > | SI::literals::operator""_GGy () |
template<char... _digits> | |
constexpr tera_gray_t< int64_t > | SI::literals::operator""_TGy () |
template<char... _digits> | |
constexpr peta_gray_t< int64_t > | SI::literals::operator""_PGy () |
template<char... _digits> | |
constexpr exa_gray_t< int64_t > | SI::literals::operator""_EGy () |
constexpr atto_gray_t< long double > | SI::literals::operator""_aGy (long double value) |
constexpr femto_gray_t< long double > | SI::literals::operator""_fGy (long double value) |
constexpr pico_gray_t< long double > | SI::literals::operator""_pGy (long double value) |
constexpr nano_gray_t< long double > | SI::literals::operator""_nGy (long double value) |
constexpr micro_gray_t< long double > | SI::literals::operator""_uGy (long double value) |
constexpr milli_gray_t< long double > | SI::literals::operator""_mGy (long double value) |
constexpr gray_t< long double > | SI::literals::operator""_Gy (long double value) |
constexpr kilo_gray_t< long double > | SI::literals::operator""_kGy (long double value) |
constexpr mega_gray_t< long double > | SI::literals::operator""_MGy (long double value) |
constexpr giga_gray_t< long double > | SI::literals::operator""_GGy (long double value) |
constexpr tera_gray_t< long double > | SI::literals::operator""_TGy (long double value) |
constexpr peta_gray_t< long double > | SI::literals::operator""_PGy (long double value) |
constexpr exa_gray_t< long double > | SI::literals::operator""_EGy (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
Go to the source code of this file.
++Classes | |
struct | SI::unit_symbol< 'a', std::ratio< 1 > > |
struct | SI::unit_symbol< 'a', _ratio > |
+Namespaces | |
SI | |
SI::detail | |
Namespace containing implementation details for SI. | |
+Typedefs | |
template<typename _type , typename _ratio > | |
using | SI::acceleration_t = detail::unit_t< 'a', std::ratio< 1 >, _type, _ratio > |
Type for acceleration a = v / t or a = L / t^2. More... | |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
Go to the source code of this file.
++Namespaces | |
SI | |
SI::literals | |
+Typedefs | |
template<typename _type , typename _ratio > | |
using | SI::angle_t = detail::unit_t< 'r', std::ratio< 1 >, _type, _ratio > |
Type for angle (which should be buildable from m/m (sin/cos)) More... | |
template<typename _type > | |
using | SI::atto_radian_t = angle_t< _type, std::atto > |
template<typename _type > | |
using | SI::femto_radian_t = angle_t< _type, std::femto > |
template<typename _type > | |
using | SI::pico_radian_t = angle_t< _type, std::pico > |
template<typename _type > | |
using | SI::nano_radian_t = angle_t< _type, std::nano > |
template<typename _type > | |
using | SI::micro_radian_t = angle_t< _type, std::micro > |
template<typename _type > | |
using | SI::milli_radian_t = angle_t< _type, std::milli > |
template<typename _type > | |
using | SI::radian_t = angle_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::micro_degree_t = angle_t< _type, std::ratio< 100000000, 5729577951308232 > > |
template<typename _type > | |
using | SI::milli_degree_t = angle_t< _type, std::ratio< 100000000000, 5729577951308232 > > |
template<typename _type > | |
using | SI::degree_t = angle_t< _type, std::ratio< 100000000000000, 5729577951308232 > > |
+Functions | |
template<char... _digits> | |
constexpr atto_radian_t< int64_t > | SI::literals::operator""_arad () |
template<char... _digits> | |
constexpr femto_radian_t< int64_t > | SI::literals::operator""_frad () |
template<char... _digits> | |
constexpr pico_radian_t< int64_t > | SI::literals::operator""_prad () |
template<char... _digits> | |
constexpr nano_radian_t< int64_t > | SI::literals::operator""_nrad () |
template<char... _digits> | |
constexpr micro_radian_t< int64_t > | SI::literals::operator""_urad () |
template<char... _digits> | |
constexpr milli_radian_t< int64_t > | SI::literals::operator""_mrad () |
template<char... _digits> | |
constexpr radian_t< int64_t > | SI::literals::operator""_rad () |
constexpr atto_radian_t< long double > | SI::literals::operator""_arad (long double value) |
constexpr femto_radian_t< long double > | SI::literals::operator""_frad (long double value) |
constexpr pico_radian_t< long double > | SI::literals::operator""_prad (long double value) |
constexpr nano_radian_t< long double > | SI::literals::operator""_nrad (long double value) |
constexpr micro_radian_t< long double > | SI::literals::operator""_urad (long double value) |
constexpr milli_radian_t< long double > | SI::literals::operator""_mrad (long double value) |
constexpr radian_t< long double > | SI::literals::operator""_rad (long double value) |
template<char... _digits> | |
constexpr micro_degree_t< int64_t > | SI::literals::operator""_udeg () |
template<char... _digits> | |
constexpr milli_degree_t< int64_t > | SI::literals::operator""_mdeg () |
template<char... _digits> | |
constexpr degree_t< int64_t > | SI::literals::operator""_deg () |
constexpr micro_degree_t< long double > | SI::literals::operator""_udeg (long double value) |
constexpr milli_degree_t< long double > | SI::literals::operator""_mdeg (long double value) |
constexpr degree_t< long double > | SI::literals::operator""_deg (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
#include "angle.h"
#include "detail/operator_helpers.h"
#include "detail/unit.h"
#include "frequency.h"
#include "time.h"
Go to the source code of this file.
++Namespaces | |
SI | |
SI::detail | |
Namespace containing implementation details for SI. | |
+Typedefs | |
template<typename _type , typename _ratio > | |
using | SI::angular_frequency_t = detail::unit_t< 'w', std::ratio< 1 >, _type, _ratio > |
Type for velocity where w = r / T. More... | |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
#include "length.h"
Go to the source code of this file.
++Namespaces | |
SI | |
SI::literals | |
+Typedefs | |
template<typename _type , typename _ratio > | |
using | SI::area_t = detail::unit_t< 'L', std::ratio< 2 >, _type, _ratio > |
template<typename _type > | |
using | SI::square_metre_t = area_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::square_centi_metre_t = area_t< _type, std::ratio_multiply< std::centi, std::centi > > |
template<typename _type > | |
using | SI::square_milli_metre_t = area_t< _type, std::ratio_multiply< std::milli, std::milli > > |
template<typename _type , typename _ratio > | |
using | SI::volume_t = detail::unit_t< 'L', std::ratio< 3 >, _type, _ratio > |
template<typename _type > | |
using | SI::cubic_metre_t = volume_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::cubic_centi_metre_t = volume_t< _type, std::ratio< 1, 1000000 > > |
template<typename _type > | |
using | SI::cubic_milli_metre_t = volume_t< _type, std::nano > |
+Functions | |
template<char... _digits> | |
constexpr square_metre_t< int64_t > | SI::literals::operator""_m2 () |
constexpr square_metre_t< long double > | SI::literals::operator""_m2 (long double m) |
template<char... _digits> | |
constexpr square_centi_metre_t< int64_t > | SI::literals::operator""_cm2 () |
constexpr square_centi_metre_t< long double > | SI::literals::operator""_cm2 (long double cm) |
template<char... _digits> | |
constexpr square_milli_metre_t< int64_t > | SI::literals::operator""_mm2 () |
constexpr square_milli_metre_t< long double > | SI::literals::operator""_mm2 (long double mm) |
template<char... _digits> | |
constexpr cubic_metre_t< int64_t > | SI::literals::operator""_m3 () |
constexpr cubic_metre_t< long double > | SI::literals::operator""_m3 (long double m) |
template<char... _digits> | |
constexpr cubic_centi_metre_t< int64_t > | SI::literals::operator""_cm3 () |
constexpr cubic_centi_metre_t< long double > | SI::literals::operator""_cm3 (long double cm) |
template<char... _digits> | |
constexpr cubic_milli_metre_t< int64_t > | SI::literals::operator""_mm3 () |
constexpr cubic_milli_metre_t< long double > | SI::literals::operator""_mm3 (long double mm) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
Go to the source code of this file.
++Namespaces | |
SI | |
SI::literals | |
+Typedefs | |
template<typename _type > | |
using | SI::astronomic_unit_t = length_t< _type, std::ratio< 149597870691, 1 > > |
template<typename _type > | |
using | SI::lightyear_t = length_t< _type, std::ratio< 9460730777119564, 1 > > |
template<typename _type > | |
using | SI::parsec_t = length_t< _type, std::ratio< 30856775814913700, 1 > > |
+Functions | |
template<char... _digits> | |
constexpr astronomic_unit_t< int64_t > | SI::literals::operator""_AU () |
template<char... _digits> | |
constexpr lightyear_t< int64_t > | SI::literals::operator""_ly () |
template<char... _digits> | |
constexpr parsec_t< int64_t > | SI::literals::operator""_pc () |
constexpr astronomic_unit_t< long double > | SI::literals::operator""_AU (long double value) |
constexpr lightyear_t< long double > | SI::literals::operator""_ly (long double value) |
constexpr parsec_t< long double > | SI::literals::operator""_pc (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
#include "detail/number_parser.h"
#include "detail/operator_helpers.h"
#include "detail/unit.h"
#include "detail/unit_symbol.h"
#include "substance.h"
#include "time.h"
Go to the source code of this file.
++Classes | |
struct | SI::unit_symbol< 'K', std::ratio< 1 > > |
struct | SI::unit_symbol< 'K', _ratio > |
+Namespaces | |
SI | |
SI::detail | |
Namespace containing implementation details for SI. | |
SI::literals | |
+Typedefs | |
template<typename _type , class _ratio = std::ratio<1>> | |
using | SI::catalytic_activity_t = detail::unit_t< 'K', std::ratio< 1 >, _type, _ratio > |
template<typename _type > | |
using | SI::atto_katal_t = catalytic_activity_t< _type, std::atto > |
specific units More... | |
template<typename _type > | |
using | SI::femto_katal_t = catalytic_activity_t< _type, std::femto > |
template<typename _type > | |
using | SI::pico_katal_t = catalytic_activity_t< _type, std::pico > |
template<typename _type > | |
using | SI::nano_katal_t = catalytic_activity_t< _type, std::nano > |
template<typename _type > | |
using | SI::micro_katal_t = catalytic_activity_t< _type, std::micro > |
template<typename _type > | |
using | SI::milli_katal_t = catalytic_activity_t< _type, std::milli > |
template<typename _type > | |
using | SI::katal_t = catalytic_activity_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::kilo_katal_t = catalytic_activity_t< _type, std::kilo > |
template<typename _type > | |
using | SI::mega_katal_t = catalytic_activity_t< _type, std::mega > |
template<typename _type > | |
using | SI::giga_katal_t = catalytic_activity_t< _type, std::giga > |
template<typename _type > | |
using | SI::tera_katal_t = catalytic_activity_t< _type, std::tera > |
template<typename _type > | |
using | SI::peta_katal_t = catalytic_activity_t< _type, std::peta > |
template<typename _type > | |
using | SI::exa_katal_t = catalytic_activity_t< _type, std::exa > |
+Functions | |
template<char... _digits> | |
constexpr atto_katal_t< int64_t > | SI::literals::operator""_akat () |
template<char... _digits> | |
constexpr femto_katal_t< int64_t > | SI::literals::operator""_fkat () |
template<char... _digits> | |
constexpr pico_katal_t< int64_t > | SI::literals::operator""_pkat () |
template<char... _digits> | |
constexpr nano_katal_t< int64_t > | SI::literals::operator""_nkat () |
template<char... _digits> | |
constexpr micro_katal_t< int64_t > | SI::literals::operator""_ukat () |
template<char... _digits> | |
constexpr milli_katal_t< int64_t > | SI::literals::operator""_mkat () |
template<char... _digits> | |
constexpr katal_t< int64_t > | SI::literals::operator""_kat () |
template<char... _digits> | |
constexpr kilo_katal_t< int64_t > | SI::literals::operator""_kkat () |
template<char... _digits> | |
constexpr mega_katal_t< int64_t > | SI::literals::operator""_Mkat () |
template<char... _digits> | |
constexpr giga_katal_t< int64_t > | SI::literals::operator""_Gkat () |
template<char... _digits> | |
constexpr tera_katal_t< int64_t > | SI::literals::operator""_Tkat () |
template<char... _digits> | |
constexpr peta_katal_t< int64_t > | SI::literals::operator""_Pkat () |
template<char... _digits> | |
constexpr exa_katal_t< int64_t > | SI::literals::operator""_Ekat () |
constexpr atto_katal_t< long double > | SI::literals::operator""_akat (long double value) |
constexpr femto_katal_t< long double > | SI::literals::operator""_fkat (long double value) |
constexpr pico_katal_t< long double > | SI::literals::operator""_pkat (long double value) |
constexpr nano_katal_t< long double > | SI::literals::operator""_nkat (long double value) |
constexpr micro_katal_t< long double > | SI::literals::operator""_ukat (long double value) |
constexpr milli_katal_t< long double > | SI::literals::operator""_mkat (long double value) |
constexpr katal_t< long double > | SI::literals::operator""_kat (long double value) |
constexpr kilo_katal_t< long double > | SI::literals::operator""_kkat (long double value) |
constexpr mega_katal_t< long double > | SI::literals::operator""_Mkat (long double value) |
constexpr giga_katal_t< long double > | SI::literals::operator""_Gkat (long double value) |
constexpr tera_katal_t< long double > | SI::literals::operator""_Tkat (long double value) |
constexpr peta_katal_t< long double > | SI::literals::operator""_Pkat (long double value) |
constexpr exa_katal_t< long double > | SI::literals::operator""_Ekat (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
#include "detail.h"
Go to the source code of this file.
++Namespaces | |
SI | |
SI::detail | |
Namespace containing implementation details for SI. | |
+Functions | |
template<template< typename... > typename _resulting_unit, typename _unit_lhs , typename _unit_rhs > | |
constexpr auto | SI::detail::cross_unit_divide (const _unit_lhs &lhs, const _unit_rhs &rhs) |
template<template< typename... > typename _resulting_unit, typename _unit_lhs , typename _unit_rhs > | |
constexpr auto | SI::detail::cross_unit_multiply (const _unit_lhs &lhs, const _unit_rhs &rhs) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
Go to the source code of this file.
++Classes | |
struct | SI::detail::is_ratio< _type > |
to check if a template is an instantiation of std::ratio More... | |
struct | SI::detail::is_ratio< std::ratio< _num, _den > > |
struct | SI::detail::ratio_gcd< _ratio_lhs, _ratio_rhs > |
calculate gcd for rations More... | |
struct | SI::detail::is_unit_t< _unit > |
struct | SI::detail::is_unit_t< const unit_t< _symbol, _exponent, _type, _ratio > > |
template specialization to check if a type is a unit_t (true if unit_t) More... | |
struct | SI::detail::is_unit_t< unit_t< _symbol, _exponent, _type, _ratio > > |
non-const specialization of check above More... | |
+Namespaces | |
SI | |
SI::detail | |
Namespace containing implementation details for SI. | |
+Variables | |
template<typename _type > | |
constexpr bool | SI::detail::is_ratio_v = is_ratio<_type>::value |
template<typename _type > | |
constexpr bool | SI::detail::is_unit_t_v = is_unit_t<_type>::value |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
+Directories | |
directory | detail |
+ |
+ 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.
+ |
+
+Files | |
file | cross_unit_operations.h [code] |
file | detail.h [code] |
file | eps_equal.h [code] |
file | number_parser.h [code] |
file | operator_helpers.h [code] |
file | unit.h [code] |
file | unit_cast.h [code] |
file | unit_symbol.h [code] |
+ |
+ 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.
+ |
+
#include "detail/number_parser.h"
#include "detail/operator_helpers.h"
#include "detail/unit.h"
#include "detail/unit_symbol.h"
#include "electric_charge.h"
#include "electric_potential.h"
Go to the source code of this file.
++Classes | |
struct | SI::unit_symbol< 'C', std::ratio< 1 > > |
struct | SI::unit_symbol< 'C', _ratio > |
+Namespaces | |
SI | |
SI::detail | |
Namespace containing implementation details for SI. | |
SI::literals | |
+Typedefs | |
template<typename _type , class _ratio = std::ratio<1>> | |
using | SI::electric_capacity_t = detail::unit_t< 'C', std::ratio< 1 >, _type, _ratio > |
template<typename _type > | |
using | SI::atto_farad_t = electric_capacity_t< _type, std::atto > |
specific units More... | |
template<typename _type > | |
using | SI::femto_farad_t = electric_capacity_t< _type, std::femto > |
template<typename _type > | |
using | SI::pico_farad_t = electric_capacity_t< _type, std::pico > |
template<typename _type > | |
using | SI::nano_farad_t = electric_capacity_t< _type, std::nano > |
template<typename _type > | |
using | SI::micro_farad_t = electric_capacity_t< _type, std::micro > |
template<typename _type > | |
using | SI::milli_farad_t = electric_capacity_t< _type, std::milli > |
template<typename _type > | |
using | SI::farad_t = electric_capacity_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::kilo_farad_t = electric_capacity_t< _type, std::kilo > |
template<typename _type > | |
using | SI::mega_farad_t = electric_capacity_t< _type, std::mega > |
template<typename _type > | |
using | SI::giga_farad_t = electric_capacity_t< _type, std::giga > |
template<typename _type > | |
using | SI::tera_farad_t = electric_capacity_t< _type, std::tera > |
template<typename _type > | |
using | SI::peta_farad_t = electric_capacity_t< _type, std::peta > |
template<typename _type > | |
using | SI::exa_farad_t = electric_capacity_t< _type, std::exa > |
+Functions | |
template<char... _digits> | |
constexpr atto_farad_t< int64_t > | SI::literals::operator""_aF () |
template<char... _digits> | |
constexpr femto_farad_t< int64_t > | SI::literals::operator""_fF () |
template<char... _digits> | |
constexpr pico_farad_t< int64_t > | SI::literals::operator""_pF () |
template<char... _digits> | |
constexpr nano_farad_t< int64_t > | SI::literals::operator""_nF () |
template<char... _digits> | |
constexpr micro_farad_t< int64_t > | SI::literals::operator""_uF () |
template<char... _digits> | |
constexpr milli_farad_t< int64_t > | SI::literals::operator""_mF () |
template<char... _digits> | |
constexpr farad_t< int64_t > | SI::literals::operator""_F () |
template<char... _digits> | |
constexpr kilo_farad_t< int64_t > | SI::literals::operator""_kF () |
template<char... _digits> | |
constexpr mega_farad_t< int64_t > | SI::literals::operator""_MF () |
template<char... _digits> | |
constexpr giga_farad_t< int64_t > | SI::literals::operator""_GF () |
template<char... _digits> | |
constexpr tera_farad_t< int64_t > | SI::literals::operator""_TF () |
template<char... _digits> | |
constexpr peta_farad_t< int64_t > | SI::literals::operator""_PF () |
template<char... _digits> | |
constexpr exa_farad_t< int64_t > | SI::literals::operator""_EF () |
constexpr atto_farad_t< long double > | SI::literals::operator""_aF (long double value) |
constexpr femto_farad_t< long double > | SI::literals::operator""_fF (long double value) |
constexpr pico_farad_t< long double > | SI::literals::operator""_pF (long double value) |
constexpr nano_farad_t< long double > | SI::literals::operator""_nF (long double value) |
constexpr micro_farad_t< long double > | SI::literals::operator""_uF (long double value) |
constexpr milli_farad_t< long double > | SI::literals::operator""_mF (long double value) |
constexpr farad_t< long double > | SI::literals::operator""_F (long double value) |
constexpr kilo_farad_t< long double > | SI::literals::operator""_kF (long double value) |
constexpr mega_farad_t< long double > | SI::literals::operator""_MF (long double value) |
constexpr giga_farad_t< long double > | SI::literals::operator""_GF (long double value) |
constexpr tera_farad_t< long double > | SI::literals::operator""_TF (long double value) |
constexpr peta_farad_t< long double > | SI::literals::operator""_PF (long double value) |
constexpr exa_farad_t< long double > | SI::literals::operator""_EF (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
#include "detail/number_parser.h"
#include "detail/operator_helpers.h"
#include "detail/unit.h"
#include "detail/unit_symbol.h"
#include "electric_current.h"
#include "time.h"
Go to the source code of this file.
++Classes | |
struct | SI::unit_symbol< 'Q', std::ratio< 1 > > |
struct | SI::unit_symbol< 'Q', _ratio > |
+Namespaces | |
SI | |
SI::detail | |
Namespace containing implementation details for SI. | |
SI::literals | |
+Typedefs | |
template<typename _type , typename _ratio > | |
using | SI::electric_charge_t = detail::unit_t< 'Q', std::ratio< 1 >, _type, _ratio > |
unit for electric charge 'Q' where Q = T * I More... | |
template<typename _type > | |
using | SI::atto_coulomb_t = electric_charge_t< _type, std::atto > |
specific units More... | |
template<typename _type > | |
using | SI::femto_coulomb_t = electric_charge_t< _type, std::femto > |
template<typename _type > | |
using | SI::pico_coulomb_t = electric_charge_t< _type, std::pico > |
template<typename _type > | |
using | SI::nano_coulomb_t = electric_charge_t< _type, std::nano > |
template<typename _type > | |
using | SI::micro_coulomb_t = electric_charge_t< _type, std::micro > |
template<typename _type > | |
using | SI::milli_coulomb_t = electric_charge_t< _type, std::milli > |
template<typename _type > | |
using | SI::coulomb_t = electric_charge_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::kilo_coulomb_t = electric_charge_t< _type, std::kilo > |
template<typename _type > | |
using | SI::mega_coulomb_t = electric_charge_t< _type, std::mega > |
template<typename _type > | |
using | SI::giga_coulomb_t = electric_charge_t< _type, std::giga > |
template<typename _type > | |
using | SI::tera_coulomb_t = electric_charge_t< _type, std::tera > |
template<typename _type > | |
using | SI::peta_coulomb_t = electric_charge_t< _type, std::peta > |
template<typename _type > | |
using | SI::exa_coulomb_t = electric_charge_t< _type, std::exa > |
+Functions | |
template<char... _digits> | |
constexpr atto_coulomb_t< int64_t > | SI::literals::operator""_aC () |
template<char... _digits> | |
constexpr femto_coulomb_t< int64_t > | SI::literals::operator""_fC () |
template<char... _digits> | |
constexpr pico_coulomb_t< int64_t > | SI::literals::operator""_pC () |
template<char... _digits> | |
constexpr nano_coulomb_t< int64_t > | SI::literals::operator""_nC () |
template<char... _digits> | |
constexpr micro_coulomb_t< int64_t > | SI::literals::operator""_uC () |
template<char... _digits> | |
constexpr milli_coulomb_t< int64_t > | SI::literals::operator""_mC () |
template<char... _digits> | |
constexpr coulomb_t< int64_t > | SI::literals::operator""_C () |
template<char... _digits> | |
constexpr kilo_coulomb_t< int64_t > | SI::literals::operator""_kC () |
template<char... _digits> | |
constexpr mega_coulomb_t< int64_t > | SI::literals::operator""_MC () |
template<char... _digits> | |
constexpr giga_coulomb_t< int64_t > | SI::literals::operator""_GC () |
template<char... _digits> | |
constexpr tera_coulomb_t< int64_t > | SI::literals::operator""_TC () |
template<char... _digits> | |
constexpr peta_coulomb_t< int64_t > | SI::literals::operator""_PC () |
template<char... _digits> | |
constexpr exa_coulomb_t< int64_t > | SI::literals::operator""_EC () |
constexpr atto_coulomb_t< long double > | SI::literals::operator""_aC (long double value) |
constexpr femto_coulomb_t< long double > | SI::literals::operator""_fC (long double value) |
constexpr pico_coulomb_t< long double > | SI::literals::operator""_pC (long double value) |
constexpr nano_coulomb_t< long double > | SI::literals::operator""_nC (long double value) |
constexpr micro_coulomb_t< long double > | SI::literals::operator""_uC (long double value) |
constexpr milli_coulomb_t< long double > | SI::literals::operator""_mC (long double value) |
constexpr coulomb_t< long double > | SI::literals::operator""_C (long double value) |
constexpr kilo_coulomb_t< long double > | SI::literals::operator""_kC (long double value) |
constexpr mega_coulomb_t< long double > | SI::literals::operator""_MC (long double value) |
constexpr giga_coulomb_t< long double > | SI::literals::operator""_GC (long double value) |
constexpr tera_coulomb_t< long double > | SI::literals::operator""_TC (long double value) |
constexpr peta_coulomb_t< long double > | SI::literals::operator""_PC (long double value) |
constexpr exa_coulomb_t< long double > | SI::literals::operator""_EC (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
#include "detail/number_parser.h"
#include "detail/operator_helpers.h"
#include "detail/unit.h"
#include "electric_current.h"
#include "electric_potential.h"
Go to the source code of this file.
++Classes | |
struct | SI::unit_symbol< 'G', std::ratio< 1 > > |
struct | SI::unit_symbol< 'G', _ratio > |
+Namespaces | |
SI | |
SI::detail | |
Namespace containing implementation details for SI. | |
SI::literals | |
+Typedefs | |
template<typename _type , class _ratio = std::ratio<1>> | |
using | SI::electric_conductance_t = detail::unit_t< 'G', std::ratio< 1 >, _type, _ratio > |
template<typename _type > | |
using | SI::atto_siemens_t = electric_conductance_t< _type, std::atto > |
specific units More... | |
template<typename _type > | |
using | SI::femto_siemens_t = electric_conductance_t< _type, std::femto > |
template<typename _type > | |
using | SI::pico_siemens_t = electric_conductance_t< _type, std::pico > |
template<typename _type > | |
using | SI::nano_siemens_t = electric_conductance_t< _type, std::nano > |
template<typename _type > | |
using | SI::micro_siemens_t = electric_conductance_t< _type, std::micro > |
template<typename _type > | |
using | SI::milli_siemens_t = electric_conductance_t< _type, std::milli > |
template<typename _type > | |
using | SI::siemens_t = electric_conductance_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::kilo_siemens_t = electric_conductance_t< _type, std::kilo > |
template<typename _type > | |
using | SI::mega_siemens_t = electric_conductance_t< _type, std::mega > |
template<typename _type > | |
using | SI::giga_siemens_t = electric_conductance_t< _type, std::giga > |
template<typename _type > | |
using | SI::tera_siemens_t = electric_conductance_t< _type, std::tera > |
template<typename _type > | |
using | SI::peta_siemens_t = electric_conductance_t< _type, std::peta > |
template<typename _type > | |
using | SI::exa_siemens_t = electric_conductance_t< _type, std::exa > |
+Functions | |
SI::detail::BUILD_UNIT_FROM_DIVISION (electric_conductance_t, electric_current_t, electric_potential_t) template< typename _type | |
template<char... _digits> | |
constexpr atto_siemens_t< int64_t > | SI::literals::operator""_aS () |
template<char... _digits> | |
constexpr femto_siemens_t< int64_t > | SI::literals::operator""_fS () |
template<char... _digits> | |
constexpr pico_siemens_t< int64_t > | SI::literals::operator""_pS () |
template<char... _digits> | |
constexpr nano_siemens_t< int64_t > | SI::literals::operator""_nS () |
template<char... _digits> | |
constexpr micro_siemens_t< int64_t > | SI::literals::operator""_uS () |
template<char... _digits> | |
constexpr milli_siemens_t< int64_t > | SI::literals::operator""_mS () |
template<char... _digits> | |
constexpr siemens_t< int64_t > | SI::literals::operator""_S () |
template<char... _digits> | |
constexpr kilo_siemens_t< int64_t > | SI::literals::operator""_kS () |
template<char... _digits> | |
constexpr mega_siemens_t< int64_t > | SI::literals::operator""_MS () |
template<char... _digits> | |
constexpr giga_siemens_t< int64_t > | SI::literals::operator""_GS () |
template<char... _digits> | |
constexpr tera_siemens_t< int64_t > | SI::literals::operator""_TS () |
template<char... _digits> | |
constexpr peta_siemens_t< int64_t > | SI::literals::operator""_PS () |
template<char... _digits> | |
constexpr exa_siemens_t< int64_t > | SI::literals::operator""_ES () |
constexpr atto_siemens_t< long double > | SI::literals::operator""_aS (long double value) |
constexpr femto_siemens_t< long double > | SI::literals::operator""_fS (long double value) |
constexpr pico_siemens_t< long double > | SI::literals::operator""_pS (long double value) |
constexpr nano_siemens_t< long double > | SI::literals::operator""_nS (long double value) |
constexpr micro_siemens_t< long double > | SI::literals::operator""_uS (long double value) |
constexpr milli_siemens_t< long double > | SI::literals::operator""_mS (long double value) |
constexpr siemens_t< long double > | SI::literals::operator""_S (long double value) |
constexpr kilo_siemens_t< long double > | SI::literals::operator""_kS (long double value) |
constexpr mega_siemens_t< long double > | SI::literals::operator""_MS (long double value) |
constexpr giga_siemens_t< long double > | SI::literals::operator""_GS (long double value) |
constexpr tera_siemens_t< long double > | SI::literals::operator""_TS (long double value) |
constexpr peta_siemens_t< long double > | SI::literals::operator""_PS (long double value) |
constexpr exa_siemens_t< long double > | SI::literals::operator""_ES (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
Go to the source code of this file.
++Classes | |
struct | SI::unit_symbol< 'I', std::ratio< 1 > > |
struct | SI::unit_symbol< 'I', _ratio > |
+Namespaces | |
SI | |
SI::literals | |
+Typedefs | |
template<typename _type , typename _ratio > | |
using | SI::electric_current_t = detail::unit_t< 'I', std::ratio< 1 >, _type, _ratio > |
template<typename _type > | |
using | SI::atto_ampere_t = electric_current_t< _type, std::atto > |
template<typename _type > | |
using | SI::femto_ampere_t = electric_current_t< _type, std::femto > |
template<typename _type > | |
using | SI::pico_ampere_t = electric_current_t< _type, std::pico > |
template<typename _type > | |
using | SI::nano_ampere_t = electric_current_t< _type, std::nano > |
template<typename _type > | |
using | SI::micro_ampere_t = electric_current_t< _type, std::micro > |
template<typename _type > | |
using | SI::milli_ampere_t = electric_current_t< _type, std::milli > |
template<typename _type > | |
using | SI::ampere_t = electric_current_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::kilo_ampere_t = electric_current_t< _type, std::kilo > |
template<typename _type > | |
using | SI::mega_ampere_t = electric_current_t< _type, std::mega > |
template<typename _type > | |
using | SI::giga_ampere_t = electric_current_t< _type, std::giga > |
template<typename _type > | |
using | SI::tera_ampere_t = electric_current_t< _type, std::tera > |
template<typename _type > | |
using | SI::peta_ampere_t = electric_current_t< _type, std::peta > |
template<typename _type > | |
using | SI::exa_ampere_t = electric_current_t< _type, std::exa > |
+Functions | |
template<char... _digits> | |
constexpr atto_ampere_t< int64_t > | SI::literals::operator""_aA () |
template<char... _digits> | |
constexpr femto_ampere_t< int64_t > | SI::literals::operator""_fA () |
template<char... _digits> | |
constexpr pico_ampere_t< int64_t > | SI::literals::operator""_pA () |
template<char... _digits> | |
constexpr nano_ampere_t< int64_t > | SI::literals::operator""_nA () |
template<char... _digits> | |
constexpr micro_ampere_t< int64_t > | SI::literals::operator""_uA () |
template<char... _digits> | |
constexpr milli_ampere_t< int64_t > | SI::literals::operator""_mA () |
template<char... _digits> | |
constexpr ampere_t< int64_t > | SI::literals::operator""_A () |
template<char... _digits> | |
constexpr kilo_ampere_t< int64_t > | SI::literals::operator""_kA () |
template<char... _digits> | |
constexpr mega_ampere_t< int64_t > | SI::literals::operator""_MA () |
template<char... _digits> | |
constexpr giga_ampere_t< int64_t > | SI::literals::operator""_GA () |
template<char... _digits> | |
constexpr tera_ampere_t< int64_t > | SI::literals::operator""_TA () |
template<char... _digits> | |
constexpr peta_ampere_t< int64_t > | SI::literals::operator""_PA () |
template<char... _digits> | |
constexpr exa_ampere_t< int64_t > | SI::literals::operator""_EA () |
constexpr atto_ampere_t< long double > | SI::literals::operator""_aA (long double value) |
constexpr femto_ampere_t< long double > | SI::literals::operator""_fA (long double value) |
constexpr pico_ampere_t< long double > | SI::literals::operator""_pA (long double value) |
constexpr nano_ampere_t< long double > | SI::literals::operator""_nA (long double value) |
constexpr micro_ampere_t< long double > | SI::literals::operator""_uA (long double value) |
constexpr milli_ampere_t< long double > | SI::literals::operator""_mA (long double value) |
constexpr ampere_t< long double > | SI::literals::operator""_A (long double value) |
constexpr kilo_ampere_t< long double > | SI::literals::operator""_kA (long double value) |
constexpr mega_ampere_t< long double > | SI::literals::operator""_MA (long double value) |
constexpr giga_ampere_t< long double > | SI::literals::operator""_GA (long double value) |
constexpr tera_ampere_t< long double > | SI::literals::operator""_TA (long double value) |
constexpr peta_ampere_t< long double > | SI::literals::operator""_PA (long double value) |
constexpr exa_ampere_t< long double > | SI::literals::operator""_EA (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
#include "detail/number_parser.h"
#include "detail/operator_helpers.h"
#include "detail/unit.h"
#include "detail/unit_symbol.h"
#include "electric_charge.h"
#include "electric_current.h"
#include "energy.h"
#include "power.h"
Go to the source code of this file.
++Classes | |
struct | SI::unit_symbol< 'U', std::ratio< 1 > > |
struct | SI::unit_symbol< 'U', _ratio > |
+Namespaces | |
SI | |
SI::detail | |
Namespace containing implementation details for SI. | |
SI::literals | |
+Typedefs | |
template<typename _type , class _ratio = std::ratio<1>> | |
using | SI::electric_potential_t = detail::unit_t< 'U', std::ratio< 1 >, _type, _ratio > |
template<typename _type > | |
using | SI::atto_volt_t = electric_potential_t< _type, std::atto > |
specific units More... | |
template<typename _type > | |
using | SI::femto_volt_t = electric_potential_t< _type, std::femto > |
template<typename _type > | |
using | SI::pico_volt_t = electric_potential_t< _type, std::pico > |
template<typename _type > | |
using | SI::nano_volt_t = electric_potential_t< _type, std::nano > |
template<typename _type > | |
using | SI::micro_volt_t = electric_potential_t< _type, std::micro > |
template<typename _type > | |
using | SI::milli_volt_t = electric_potential_t< _type, std::milli > |
template<typename _type > | |
using | SI::volt_t = electric_potential_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::kilo_volt_t = electric_potential_t< _type, std::kilo > |
template<typename _type > | |
using | SI::mega_volt_t = electric_potential_t< _type, std::mega > |
template<typename _type > | |
using | SI::giga_volt_t = electric_potential_t< _type, std::giga > |
template<typename _type > | |
using | SI::tera_volt_t = electric_potential_t< _type, std::tera > |
template<typename _type > | |
using | SI::peta_volt_t = electric_potential_t< _type, std::peta > |
template<typename _type > | |
using | SI::exa_volt_t = electric_potential_t< _type, std::exa > |
+Functions | |
template<char... _digits> | |
constexpr atto_volt_t< int64_t > | SI::literals::operator""_aV () |
template<char... _digits> | |
constexpr femto_volt_t< int64_t > | SI::literals::operator""_fV () |
template<char... _digits> | |
constexpr pico_volt_t< int64_t > | SI::literals::operator""_pV () |
template<char... _digits> | |
constexpr nano_volt_t< int64_t > | SI::literals::operator""_nV () |
template<char... _digits> | |
constexpr micro_volt_t< int64_t > | SI::literals::operator""_uV () |
template<char... _digits> | |
constexpr milli_volt_t< int64_t > | SI::literals::operator""_mV () |
template<char... _digits> | |
constexpr volt_t< int64_t > | SI::literals::operator""_V () |
template<char... _digits> | |
constexpr kilo_volt_t< int64_t > | SI::literals::operator""_kV () |
template<char... _digits> | |
constexpr mega_volt_t< int64_t > | SI::literals::operator""_MV () |
template<char... _digits> | |
constexpr giga_volt_t< int64_t > | SI::literals::operator""_GV () |
template<char... _digits> | |
constexpr tera_volt_t< int64_t > | SI::literals::operator""_TV () |
template<char... _digits> | |
constexpr peta_volt_t< int64_t > | SI::literals::operator""_PV () |
template<char... _digits> | |
constexpr exa_volt_t< int64_t > | SI::literals::operator""_EV () |
constexpr atto_volt_t< long double > | SI::literals::operator""_aV (long double value) |
constexpr femto_volt_t< long double > | SI::literals::operator""_fV (long double value) |
constexpr pico_volt_t< long double > | SI::literals::operator""_pV (long double value) |
constexpr nano_volt_t< long double > | SI::literals::operator""_nV (long double value) |
constexpr micro_volt_t< long double > | SI::literals::operator""_uV (long double value) |
constexpr milli_volt_t< long double > | SI::literals::operator""_mV (long double value) |
constexpr volt_t< long double > | SI::literals::operator""_V (long double value) |
constexpr kilo_volt_t< long double > | SI::literals::operator""_kV (long double value) |
constexpr mega_volt_t< long double > | SI::literals::operator""_MV (long double value) |
constexpr giga_volt_t< long double > | SI::literals::operator""_GV (long double value) |
constexpr tera_volt_t< long double > | SI::literals::operator""_TV (long double value) |
constexpr peta_volt_t< long double > | SI::literals::operator""_PV (long double value) |
constexpr exa_volt_t< long double > | SI::literals::operator""_EV (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
#include "detail/number_parser.h"
#include "detail/operator_helpers.h"
#include "detail/unit.h"
#include "electric_current.h"
#include "electric_potential.h"
Go to the source code of this file.
++Classes | |
struct | SI::unit_symbol< 'O', std::ratio< 1 > > |
struct | SI::unit_symbol< 'O', _ratio > |
+Namespaces | |
SI | |
SI::detail | |
Namespace containing implementation details for SI. | |
SI::literals | |
+Typedefs | |
template<typename _type , class _ratio = std::ratio<1>> | |
using | SI::electric_resistance_t = detail::unit_t< 'O', std::ratio< 1 >, _type, _ratio > |
template<typename _type > | |
using | SI::atto_ohm_t = electric_resistance_t< _type, std::atto > |
specific units More... | |
template<typename _type > | |
using | SI::femto_ohm_t = electric_resistance_t< _type, std::femto > |
template<typename _type > | |
using | SI::pico_ohm_t = electric_resistance_t< _type, std::pico > |
template<typename _type > | |
using | SI::nano_ohm_t = electric_resistance_t< _type, std::nano > |
template<typename _type > | |
using | SI::micro_ohm_t = electric_resistance_t< _type, std::micro > |
template<typename _type > | |
using | SI::milli_ohm_t = electric_resistance_t< _type, std::milli > |
template<typename _type > | |
using | SI::ohm_t = electric_resistance_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::kilo_ohm_t = electric_resistance_t< _type, std::kilo > |
template<typename _type > | |
using | SI::mega_ohm_t = electric_resistance_t< _type, std::mega > |
template<typename _type > | |
using | SI::giga_ohm_t = electric_resistance_t< _type, std::giga > |
template<typename _type > | |
using | SI::tera_ohm_t = electric_resistance_t< _type, std::tera > |
template<typename _type > | |
using | SI::peta_ohm_t = electric_resistance_t< _type, std::peta > |
template<typename _type > | |
using | SI::exa_ohm_t = electric_resistance_t< _type, std::exa > |
+Functions | |
SI::detail::BUILD_UNIT_FROM_DIVISION (electric_conductance_t, electric_current_t, electric_potential_t) template< typename _type | |
template<char... _digits> | |
constexpr atto_ohm_t< int64_t > | SI::literals::operator""_aOhm () |
template<char... _digits> | |
constexpr femto_ohm_t< int64_t > | SI::literals::operator""_fOhm () |
template<char... _digits> | |
constexpr pico_ohm_t< int64_t > | SI::literals::operator""_pOhm () |
template<char... _digits> | |
constexpr nano_ohm_t< int64_t > | SI::literals::operator""_nOhm () |
template<char... _digits> | |
constexpr micro_ohm_t< int64_t > | SI::literals::operator""_uOhm () |
template<char... _digits> | |
constexpr milli_ohm_t< int64_t > | SI::literals::operator""_mOhm () |
template<char... _digits> | |
constexpr ohm_t< int64_t > | SI::literals::operator""_Ohm () |
template<char... _digits> | |
constexpr kilo_ohm_t< int64_t > | SI::literals::operator""_kOhm () |
template<char... _digits> | |
constexpr mega_ohm_t< int64_t > | SI::literals::operator""_MOhm () |
template<char... _digits> | |
constexpr giga_ohm_t< int64_t > | SI::literals::operator""_GOhm () |
template<char... _digits> | |
constexpr tera_ohm_t< int64_t > | SI::literals::operator""_TOhm () |
template<char... _digits> | |
constexpr peta_ohm_t< int64_t > | SI::literals::operator""_POhm () |
template<char... _digits> | |
constexpr exa_ohm_t< int64_t > | SI::literals::operator""_EOhm () |
constexpr atto_ohm_t< long double > | SI::literals::operator""_aOhm (long double value) |
constexpr femto_ohm_t< long double > | SI::literals::operator""_fOhm (long double value) |
constexpr pico_ohm_t< long double > | SI::literals::operator""_pOhm (long double value) |
constexpr nano_ohm_t< long double > | SI::literals::operator""_nOhm (long double value) |
constexpr micro_ohm_t< long double > | SI::literals::operator""_uOhm (long double value) |
constexpr milli_ohm_t< long double > | SI::literals::operator""_mOhm (long double value) |
constexpr ohm_t< long double > | SI::literals::operator""_Ohm (long double value) |
constexpr kilo_ohm_t< long double > | SI::literals::operator""_kOhm (long double value) |
constexpr mega_ohm_t< long double > | SI::literals::operator""_MOhm (long double value) |
constexpr giga_ohm_t< long double > | SI::literals::operator""_GOhm (long double value) |
constexpr tera_ohm_t< long double > | SI::literals::operator""_TOhm (long double value) |
constexpr peta_ohm_t< long double > | SI::literals::operator""_POhm (long double value) |
constexpr exa_ohm_t< long double > | SI::literals::operator""_EOhm (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
#include "detail/number_parser.h"
#include "detail/operator_helpers.h"
#include "detail/unit.h"
#include "detail/unit_symbol.h"
#include "force.h"
#include "length.h"
#include "pressure.h"
Go to the source code of this file.
++Classes | |
struct | SI::unit_symbol< 'E', std::ratio< 1 > > |
struct | SI::unit_symbol< 'E', _ratio > |
+Namespaces | |
SI | |
SI::detail | |
Namespace containing implementation details for SI. | |
SI::literals | |
+Typedefs | |
template<typename _type , class _ratio = std::ratio<1>> | |
using | SI::energy_t = detail::unit_t< 'E', std::ratio< 1 >, _type, _ratio > |
template<typename _type > | |
using | SI::atto_joule_t = energy_t< _type, std::atto > |
specific units More... | |
template<typename _type > | |
using | SI::femto_joule_t = energy_t< _type, std::femto > |
template<typename _type > | |
using | SI::pico_joule_t = energy_t< _type, std::pico > |
template<typename _type > | |
using | SI::nano_joule_t = energy_t< _type, std::nano > |
template<typename _type > | |
using | SI::micro_joule_t = energy_t< _type, std::micro > |
template<typename _type > | |
using | SI::milli_joule_t = energy_t< _type, std::milli > |
template<typename _type > | |
using | SI::joule_t = energy_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::kilo_joule_t = energy_t< _type, std::kilo > |
template<typename _type > | |
using | SI::mega_joule_t = energy_t< _type, std::mega > |
template<typename _type > | |
using | SI::giga_joule_t = energy_t< _type, std::giga > |
template<typename _type > | |
using | SI::tera_joule_t = energy_t< _type, std::tera > |
template<typename _type > | |
using | SI::peta_joule_t = energy_t< _type, std::peta > |
template<typename _type > | |
using | SI::exa_joule_t = energy_t< _type, std::exa > |
+Functions | |
template<char... _digits> | |
constexpr atto_joule_t< int64_t > | SI::literals::operator""_aJ () |
template<char... _digits> | |
constexpr femto_joule_t< int64_t > | SI::literals::operator""_fJ () |
template<char... _digits> | |
constexpr pico_joule_t< int64_t > | SI::literals::operator""_pJ () |
template<char... _digits> | |
constexpr nano_joule_t< int64_t > | SI::literals::operator""_nJ () |
template<char... _digits> | |
constexpr micro_joule_t< int64_t > | SI::literals::operator""_uJ () |
template<char... _digits> | |
constexpr milli_joule_t< int64_t > | SI::literals::operator""_mJ () |
template<char... _digits> | |
constexpr joule_t< int64_t > | SI::literals::operator""_J () |
template<char... _digits> | |
constexpr kilo_joule_t< int64_t > | SI::literals::operator""_kJ () |
template<char... _digits> | |
constexpr mega_joule_t< int64_t > | SI::literals::operator""_MJ () |
template<char... _digits> | |
constexpr giga_joule_t< int64_t > | SI::literals::operator""_GJ () |
template<char... _digits> | |
constexpr tera_joule_t< int64_t > | SI::literals::operator""_TJ () |
template<char... _digits> | |
constexpr peta_joule_t< int64_t > | SI::literals::operator""_PJ () |
template<char... _digits> | |
constexpr exa_joule_t< int64_t > | SI::literals::operator""_EJ () |
constexpr atto_joule_t< long double > | SI::literals::operator""_aJ (long double value) |
constexpr femto_joule_t< long double > | SI::literals::operator""_fJ (long double value) |
constexpr pico_joule_t< long double > | SI::literals::operator""_pJ (long double value) |
constexpr nano_joule_t< long double > | SI::literals::operator""_nJ (long double value) |
constexpr micro_joule_t< long double > | SI::literals::operator""_uJ (long double value) |
constexpr milli_joule_t< long double > | SI::literals::operator""_mJ (long double value) |
constexpr joule_t< long double > | SI::literals::operator""_J (long double value) |
constexpr kilo_joule_t< long double > | SI::literals::operator""_kJ (long double value) |
constexpr mega_joule_t< long double > | SI::literals::operator""_MJ (long double value) |
constexpr giga_joule_t< long double > | SI::literals::operator""_GJ (long double value) |
constexpr tera_joule_t< long double > | SI::literals::operator""_TJ (long double value) |
constexpr peta_joule_t< long double > | SI::literals::operator""_PJ (long double value) |
constexpr exa_joule_t< long double > | SI::literals::operator""_EJ (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
#include <limits>
#include <numeric>
#include <type_traits>
Go to the source code of this file.
++Namespaces | |
SI | |
SI::detail | |
Namespace containing implementation details for SI. | |
+Functions | |
template<typename T , std::enable_if_t< std::is_floating_point_v< T >> * = nullptr> | |
constexpr bool | SI::detail::eps_equals (const T &lhs, const T &rhs) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
#include "detail/number_parser.h"
#include "detail/operator_helpers.h"
#include "detail/unit.h"
#include "detail/unit_symbol.h"
Go to the source code of this file.
++Classes | |
struct | SI::unit_symbol< 'H', std::ratio< 1 > > |
struct | SI::unit_symbol< 'H', _ratio > |
+Namespaces | |
SI | |
SI::literals | |
+Typedefs | |
template<typename _type , class _ratio = std::ratio<1>> | |
using | SI::equivalent_dose_t = detail::unit_t< 'H', std::ratio< 1 >, _type, _ratio > |
template<typename _type > | |
using | SI::atto_sievert_t = equivalent_dose_t< _type, std::atto > |
specific units More... | |
template<typename _type > | |
using | SI::femto_sievert_t = equivalent_dose_t< _type, std::femto > |
template<typename _type > | |
using | SI::pico_sievert_t = equivalent_dose_t< _type, std::pico > |
template<typename _type > | |
using | SI::nano_sievert_t = equivalent_dose_t< _type, std::nano > |
template<typename _type > | |
using | SI::micro_sievert_t = equivalent_dose_t< _type, std::micro > |
template<typename _type > | |
using | SI::milli_sievert_t = equivalent_dose_t< _type, std::milli > |
template<typename _type > | |
using | SI::sievert_t = equivalent_dose_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::kilo_sievert_t = equivalent_dose_t< _type, std::kilo > |
template<typename _type > | |
using | SI::mega_sievert_t = equivalent_dose_t< _type, std::mega > |
template<typename _type > | |
using | SI::giga_sievert_t = equivalent_dose_t< _type, std::giga > |
template<typename _type > | |
using | SI::tera_sievert_t = equivalent_dose_t< _type, std::tera > |
template<typename _type > | |
using | SI::peta_sievert_t = equivalent_dose_t< _type, std::peta > |
template<typename _type > | |
using | SI::exa_sievert_t = equivalent_dose_t< _type, std::exa > |
+Functions | |
template<char... _digits> | |
constexpr atto_sievert_t< int64_t > | SI::literals::operator""_aSv () |
template<char... _digits> | |
constexpr femto_sievert_t< int64_t > | SI::literals::operator""_fSv () |
template<char... _digits> | |
constexpr pico_sievert_t< int64_t > | SI::literals::operator""_pSv () |
template<char... _digits> | |
constexpr nano_sievert_t< int64_t > | SI::literals::operator""_nSv () |
template<char... _digits> | |
constexpr micro_sievert_t< int64_t > | SI::literals::operator""_uSv () |
template<char... _digits> | |
constexpr milli_sievert_t< int64_t > | SI::literals::operator""_mSv () |
template<char... _digits> | |
constexpr sievert_t< int64_t > | SI::literals::operator""_Sv () |
template<char... _digits> | |
constexpr kilo_sievert_t< int64_t > | SI::literals::operator""_kSv () |
template<char... _digits> | |
constexpr mega_sievert_t< int64_t > | SI::literals::operator""_MSv () |
template<char... _digits> | |
constexpr giga_sievert_t< int64_t > | SI::literals::operator""_GSv () |
template<char... _digits> | |
constexpr tera_sievert_t< int64_t > | SI::literals::operator""_TSv () |
template<char... _digits> | |
constexpr peta_sievert_t< int64_t > | SI::literals::operator""_PSv () |
template<char... _digits> | |
constexpr exa_sievert_t< int64_t > | SI::literals::operator""_ESv () |
constexpr atto_sievert_t< long double > | SI::literals::operator""_aSv (long double value) |
constexpr femto_sievert_t< long double > | SI::literals::operator""_fSv (long double value) |
constexpr pico_sievert_t< long double > | SI::literals::operator""_pSv (long double value) |
constexpr nano_sievert_t< long double > | SI::literals::operator""_nSv (long double value) |
constexpr micro_sievert_t< long double > | SI::literals::operator""_uSv (long double value) |
constexpr milli_sievert_t< long double > | SI::literals::operator""_mSv (long double value) |
constexpr sievert_t< long double > | SI::literals::operator""_Sv (long double value) |
constexpr kilo_sievert_t< long double > | SI::literals::operator""_kSv (long double value) |
constexpr mega_sievert_t< long double > | SI::literals::operator""_MSv (long double value) |
constexpr giga_sievert_t< long double > | SI::literals::operator""_GSv (long double value) |
constexpr tera_sievert_t< long double > | SI::literals::operator""_TSv (long double value) |
constexpr peta_sievert_t< long double > | SI::literals::operator""_PSv (long double value) |
constexpr exa_sievert_t< long double > | SI::literals::operator""_ESv (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
▼ SI | |
▼ detail | |
cross_unit_operations.h | |
detail.h | |
eps_equal.h | |
number_parser.h | |
operator_helpers.h | |
unit.h | |
unit_cast.h | |
unit_symbol.h | |
absorbed_dose.h | |
acceleration.h | |
angle.h | |
angular_frequency.h | |
area.h | |
astronomic.h | |
catalytic_activity.h | |
electric_capacity.h | |
electric_charge.h | |
electric_conductance.h | |
electric_current.h | |
electric_potential.h | |
electric_resistance.h | |
energy.h | |
equivalent_dose.h | |
flow.h | |
force.h | |
frequency.h | |
illuminance.h | |
inductance.h | |
length.h | |
luminosity.h | |
luminous_flux.h | |
magnetic_field.h | |
magnetic_flux.h | |
mass.h | |
momentum.h | |
power.h | |
pressure.h | |
radioactivity.h | |
solid_angle.h | |
stream.h | |
substance.h | |
temperature.h | |
time.h | |
velocity.h |
+ |
+ 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.
+ |
+
Go to the source code of this file.
++Namespaces | |
SI | |
SI::detail | |
Namespace containing implementation details for SI. | |
+Typedefs | |
template<typename _type , typename _ratio > | |
using | SI::surface_flow_t = detail::unit_t< 's', std::ratio< 1 >, _type, _ratio > |
template<typename _type , typename _ratio > | |
using | SI::volumetric_flow_t = detail::unit_t< 'V', std::ratio< 1 >, _type, _ratio > |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
#include "acceleration.h"
#include "detail/number_parser.h"
#include "detail/operator_helpers.h"
#include "detail/unit.h"
#include "mass.h"
Go to the source code of this file.
++Classes | |
struct | SI::unit_symbol< 'F', std::ratio< 1 > > |
struct | SI::unit_symbol< 'F', _ratio > |
+Namespaces | |
SI | |
SI::detail | |
Namespace containing implementation details for SI. | |
SI::literals | |
+Typedefs | |
template<typename _type , class _ratio = std::ratio<1>> | |
using | SI::force_t = detail::unit_t< 'F', std::ratio< 1 >, _type, _ratio > |
template<typename _type > | |
using | SI::atto_newton_t = force_t< _type, std::atto > |
specific units More... | |
template<typename _type > | |
using | SI::femto_newton_t = force_t< _type, std::femto > |
template<typename _type > | |
using | SI::pico_newton_t = force_t< _type, std::pico > |
template<typename _type > | |
using | SI::nano_newton_t = force_t< _type, std::nano > |
template<typename _type > | |
using | SI::micro_newton_t = force_t< _type, std::micro > |
template<typename _type > | |
using | SI::milli_newton_t = force_t< _type, std::milli > |
template<typename _type > | |
using | SI::newton_t = force_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::kilo_newton_t = force_t< _type, std::kilo > |
template<typename _type > | |
using | SI::mega_newton_t = force_t< _type, std::mega > |
template<typename _type > | |
using | SI::giga_newton_t = force_t< _type, std::giga > |
template<typename _type > | |
using | SI::tera_newton_t = force_t< _type, std::tera > |
template<typename _type > | |
using | SI::peta_newton_t = force_t< _type, std::peta > |
template<typename _type > | |
using | SI::exa_newton_t = force_t< _type, std::exa > |
+Functions | |
template<char... _digits> | |
constexpr atto_newton_t< int64_t > | SI::literals::operator""_aN () |
template<char... _digits> | |
constexpr femto_newton_t< int64_t > | SI::literals::operator""_fN () |
template<char... _digits> | |
constexpr pico_newton_t< int64_t > | SI::literals::operator""_pN () |
template<char... _digits> | |
constexpr nano_newton_t< int64_t > | SI::literals::operator""_nN () |
template<char... _digits> | |
constexpr micro_newton_t< int64_t > | SI::literals::operator""_uN () |
template<char... _digits> | |
constexpr milli_newton_t< int64_t > | SI::literals::operator""_mN () |
template<char... _digits> | |
constexpr newton_t< int64_t > | SI::literals::operator""_N () |
template<char... _digits> | |
constexpr kilo_newton_t< int64_t > | SI::literals::operator""_kN () |
template<char... _digits> | |
constexpr mega_newton_t< int64_t > | SI::literals::operator""_MN () |
template<char... _digits> | |
constexpr giga_newton_t< int64_t > | SI::literals::operator""_GN () |
template<char... _digits> | |
constexpr tera_newton_t< int64_t > | SI::literals::operator""_TN () |
template<char... _digits> | |
constexpr peta_newton_t< int64_t > | SI::literals::operator""_PN () |
template<char... _digits> | |
constexpr exa_newton_t< int64_t > | SI::literals::operator""_EN () |
constexpr atto_newton_t< long double > | SI::literals::operator""_aN (long double value) |
constexpr femto_newton_t< long double > | SI::literals::operator""_fN (long double value) |
constexpr pico_newton_t< long double > | SI::literals::operator""_pN (long double value) |
constexpr nano_newton_t< long double > | SI::literals::operator""_nN (long double value) |
constexpr micro_newton_t< long double > | SI::literals::operator""_uN (long double value) |
constexpr milli_newton_t< long double > | SI::literals::operator""_mN (long double value) |
constexpr newton_t< long double > | SI::literals::operator""_N (long double value) |
constexpr kilo_newton_t< long double > | SI::literals::operator""_kN (long double value) |
constexpr mega_newton_t< long double > | SI::literals::operator""_MN (long double value) |
constexpr giga_newton_t< long double > | SI::literals::operator""_GN (long double value) |
constexpr tera_newton_t< long double > | SI::literals::operator""_TN (long double value) |
constexpr peta_newton_t< long double > | SI::literals::operator""_PN (long double value) |
constexpr exa_newton_t< long double > | SI::literals::operator""_EN (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
Go to the source code of this file.
++Classes | |
struct | SI::unit_symbol< 'T', std::ratio< 1 >, std::ratio<-1 > > |
struct | SI::unit_symbol< 'T', _ratio, std::ratio<-1 > > |
+Namespaces | |
SI | |
SI::literals | |
+Typedefs | |
template<typename _type , class _ratio = std::ratio<1>> | |
using | SI::frequency_t = detail::time_base_t< std::ratio<-1 >, _type, _ratio > |
template<typename _type > | |
using | SI::atto_hertz_t = frequency_t< _type, std::atto > |
specific units More... | |
template<typename _type > | |
using | SI::femto_hertz_t = frequency_t< _type, std::femto > |
template<typename _type > | |
using | SI::pico_hertz_t = frequency_t< _type, std::pico > |
template<typename _type > | |
using | SI::nano_hertz_t = frequency_t< _type, std::nano > |
template<typename _type > | |
using | SI::micro_hertz_t = frequency_t< _type, std::micro > |
template<typename _type > | |
using | SI::milli_hertz_t = frequency_t< _type, std::milli > |
template<typename _type > | |
using | SI::hertz_t = frequency_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::kilo_hertz_t = frequency_t< _type, std::kilo > |
template<typename _type > | |
using | SI::mega_hertz_t = frequency_t< _type, std::mega > |
template<typename _type > | |
using | SI::giga_hertz_t = frequency_t< _type, std::giga > |
template<typename _type > | |
using | SI::tera_hertz_t = frequency_t< _type, std::tera > |
template<typename _type > | |
using | SI::peta_hertz_t = frequency_t< _type, std::peta > |
template<typename _type > | |
using | SI::exa_hertz_t = frequency_t< _type, std::exa > |
+Functions | |
template<char... _digits> | |
constexpr atto_hertz_t< int64_t > | SI::literals::operator""_aHz () |
template<char... _digits> | |
constexpr femto_hertz_t< int64_t > | SI::literals::operator""_fHz () |
template<char... _digits> | |
constexpr pico_hertz_t< int64_t > | SI::literals::operator""_pHz () |
template<char... _digits> | |
constexpr nano_hertz_t< int64_t > | SI::literals::operator""_nHz () |
template<char... _digits> | |
constexpr micro_hertz_t< int64_t > | SI::literals::operator""_uHz () |
template<char... _digits> | |
constexpr milli_hertz_t< int64_t > | SI::literals::operator""_mHz () |
template<char... _digits> | |
constexpr hertz_t< int64_t > | SI::literals::operator""_Hz () |
template<char... _digits> | |
constexpr kilo_hertz_t< int64_t > | SI::literals::operator""_kHz () |
template<char... _digits> | |
constexpr mega_hertz_t< int64_t > | SI::literals::operator""_MHz () |
template<char... _digits> | |
constexpr giga_hertz_t< int64_t > | SI::literals::operator""_GHz () |
template<char... _digits> | |
constexpr tera_hertz_t< int64_t > | SI::literals::operator""_THz () |
template<char... _digits> | |
constexpr peta_hertz_t< int64_t > | SI::literals::operator""_PHz () |
template<char... _digits> | |
constexpr exa_hertz_t< int64_t > | SI::literals::operator""_EHz () |
constexpr atto_hertz_t< long double > | SI::literals::operator""_aHz (long double value) |
constexpr femto_hertz_t< long double > | SI::literals::operator""_fHz (long double value) |
constexpr pico_hertz_t< long double > | SI::literals::operator""_pHz (long double value) |
constexpr nano_hertz_t< long double > | SI::literals::operator""_nHz (long double value) |
constexpr micro_hertz_t< long double > | SI::literals::operator""_uHz (long double value) |
constexpr milli_hertz_t< long double > | SI::literals::operator""_mHz (long double value) |
constexpr hertz_t< long double > | SI::literals::operator""_Hz (long double value) |
constexpr kilo_hertz_t< long double > | SI::literals::operator""_kHz (long double value) |
constexpr mega_hertz_t< long double > | SI::literals::operator""_MHz (long double value) |
constexpr giga_hertz_t< long double > | SI::literals::operator""_GHz (long double value) |
constexpr tera_hertz_t< long double > | SI::literals::operator""_THz (long double value) |
constexpr peta_hertz_t< long double > | SI::literals::operator""_PHz (long double value) |
constexpr exa_hertz_t< long double > | SI::literals::operator""_EHz (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
This page explains how to interpret the graphs that are generated by doxygen.
+Consider the following example:
This will result in the following graph:
+The boxes in the above graph have the following meaning:
+The arrows have the following meaning:
++ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
#include "area.h"
#include "detail/number_parser.h"
#include "detail/operator_helpers.h"
#include "detail/unit.h"
#include "detail/unit_symbol.h"
#include "luminous_flux.h"
Go to the source code of this file.
++Classes | |
struct | SI::unit_symbol< 'i', std::ratio< 1 > > |
struct | SI::unit_symbol< 'i', _ratio > |
+Namespaces | |
SI | |
SI::detail | |
Namespace containing implementation details for SI. | |
SI::literals | |
+Typedefs | |
template<typename _type , class _ratio = std::ratio<1>> | |
using | SI::illuminance_t = detail::unit_t< 'i', std::ratio< 1 >, _type, _ratio > |
template<typename _type > | |
using | SI::atto_lux_t = illuminance_t< _type, std::atto > |
specific units More... | |
template<typename _type > | |
using | SI::femto_lux_t = illuminance_t< _type, std::femto > |
template<typename _type > | |
using | SI::pico_lux_t = illuminance_t< _type, std::pico > |
template<typename _type > | |
using | SI::nano_lux_t = illuminance_t< _type, std::nano > |
template<typename _type > | |
using | SI::micro_lux_t = illuminance_t< _type, std::micro > |
template<typename _type > | |
using | SI::milli_lux_t = illuminance_t< _type, std::milli > |
template<typename _type > | |
using | SI::lux_t = illuminance_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::kilo_lux_t = illuminance_t< _type, std::kilo > |
template<typename _type > | |
using | SI::mega_lux_t = illuminance_t< _type, std::mega > |
template<typename _type > | |
using | SI::giga_lux_t = illuminance_t< _type, std::giga > |
template<typename _type > | |
using | SI::tera_lux_t = illuminance_t< _type, std::tera > |
template<typename _type > | |
using | SI::peta_lux_t = illuminance_t< _type, std::peta > |
template<typename _type > | |
using | SI::exa_lux_t = illuminance_t< _type, std::exa > |
+Functions | |
template<char... _digits> | |
constexpr atto_lux_t< int64_t > | SI::literals::operator""_alx () |
template<char... _digits> | |
constexpr femto_lux_t< int64_t > | SI::literals::operator""_flx () |
template<char... _digits> | |
constexpr pico_lux_t< int64_t > | SI::literals::operator""_plx () |
template<char... _digits> | |
constexpr nano_lux_t< int64_t > | SI::literals::operator""_nlx () |
template<char... _digits> | |
constexpr micro_lux_t< int64_t > | SI::literals::operator""_ulx () |
template<char... _digits> | |
constexpr milli_lux_t< int64_t > | SI::literals::operator""_mlx () |
template<char... _digits> | |
constexpr lux_t< int64_t > | SI::literals::operator""_lx () |
template<char... _digits> | |
constexpr kilo_lux_t< int64_t > | SI::literals::operator""_klx () |
template<char... _digits> | |
constexpr mega_lux_t< int64_t > | SI::literals::operator""_Mlx () |
template<char... _digits> | |
constexpr giga_lux_t< int64_t > | SI::literals::operator""_Glx () |
template<char... _digits> | |
constexpr tera_lux_t< int64_t > | SI::literals::operator""_Tlx () |
template<char... _digits> | |
constexpr peta_lux_t< int64_t > | SI::literals::operator""_Plx () |
template<char... _digits> | |
constexpr exa_lux_t< int64_t > | SI::literals::operator""_Elx () |
constexpr atto_lux_t< long double > | SI::literals::operator""_alx (long double value) |
constexpr femto_lux_t< long double > | SI::literals::operator""_flx (long double value) |
constexpr pico_lux_t< long double > | SI::literals::operator""_plx (long double value) |
constexpr nano_lux_t< long double > | SI::literals::operator""_nlx (long double value) |
constexpr micro_lux_t< long double > | SI::literals::operator""_ulx (long double value) |
constexpr milli_lux_t< long double > | SI::literals::operator""_mlx (long double value) |
constexpr lux_t< long double > | SI::literals::operator""_lx (long double value) |
constexpr kilo_lux_t< long double > | SI::literals::operator""_klx (long double value) |
constexpr mega_lux_t< long double > | SI::literals::operator""_Mlx (long double value) |
constexpr giga_lux_t< long double > | SI::literals::operator""_Glx (long double value) |
constexpr tera_lux_t< long double > | SI::literals::operator""_Tlx (long double value) |
constexpr peta_lux_t< long double > | SI::literals::operator""_Plx (long double value) |
constexpr exa_lux_t< long double > | SI::literals::operator""_Elx (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
A header only c++ library that provides type safety and user defined literals for handling physical values defined in the International System of Units regulated by the International Bureau of Weights and Measures (BIPM) and published in the SI brochure. For a quick start see the installation guide. Contributions and comments are welcome, please check the contribution guidelines for further information.
+An illustrative example:
+SI provides conversions and arithmetic operations with values of any of the International System of Units with strong type safety at compile time. All units are special typedefs of the template struct SI::unit_t
. Only the value of the unit is stored internally, the ratio (i.e. milli, micro, kilo...) is determined as a type trait to allow all units to have the same resolution across the whole implemented ratios. SI handles operations of units of the same ratios as well as when the ratios are different. See the documentation implementation details for further information. Operations between units of the same ratio are overhead-free, else there is an additional computation cost to adjust the values to the units. Passing the flag SI_DISABLE_IMPLICIT_RATIO_CONVERSION
to the compiler implicit ratio conversion is not done and fails with a compiler error. See the continuous benchmark results for a comparison between the reference measurements and the implementation in SI.
It is possible to supply custom ratios to the built-in types and they are fully compatible for calculation with other units. However, the necessary literals or typedefs have to be supplied by the user. For instance SI::velocity_t<double, std::ratio<1000, 36>>
would be "kilometre per one-hundredth-of-an-hour".
Converting between units is either done with the as<unit_t>()
member function of unit_
or the free function SI::unit_cast<unit_t>(unit_t u)
. This will convert a value of the same type but a different ratio.
For each unit the available literals are the implemented ratios prefixed with an underscore. i.e. _mm
. _km
. Generally the ratios follow metric prefixes of the international system of units The typedefs are prefixed (or in rare cases interfixed) with the standard metric prefixes. i.e. metre_t, milli_metre_t, kilo_metre_t
. The prefix or interfix is marked with an *
in the tables below. Units that have defined typedefs and literals can be converted to strings using stream operators or the SI::to_string
function. To use the stream operators, include the header file SI/stream.h
+
Unit | Dimension Symbol | Unit Symbol | implemented ratios | unit typedefs |
---|---|---|---|---|
Length | L | m | 10-18 to 1018 | *_metre_t |
Time | T | s | 10-18 to 100 and 60/1, 3600/1 | *_seconds_t, minutes_t, hours_t |
Mass* | M | kg | 10-15 to 1018 | *_gram_t , *_ton_t |
Electric current | I | A | 10-18 to 1018 | *_ampere_t |
Thermodynamic temperature** | t | K | 10-18 to 1018 | *_kelvin_t |
Amount of substance | N | mol | 10-18 to 1018 | *_mol_t |
Luminosity | J | cd | 10-18 to 1018 | *_candela_t |
kg
(not g
) as defined in the SI unit table. So there is a mismatch between the literal prefix and the internal representation.** The dimension symbol for thermodynamic temperature should be Θ (Theta)
, but the current implementation does not allow for non-ASCII symbols or multi-char symbols
Unit | Dimension Symbol | Exponent | Unit Symbol | implemented ratios | unit typedefs |
---|---|---|---|---|---|
Area | L | 2 | m2 | 10-18 to 1018 | square_*_metre_t |
Volume | L | 3 | m3 | 10-18 to 1018 | cubic_*_metre_t |
Frequency | T | -1 | Hz | 10-18 to 1018 | *_hertz_t |
Angle* | r | 1 | rad | 10-18 to 1 | *_radian_t |
Angle (Degrees)* | r | 1 | deg | micro, milli, 1 | *_radian_t |
Solid Angle* | R | 1 | sr | 10-18 to 1 | *_steradian_t |
long doubles
because the ratios not precise enough, as they have to be represented as long intsAll units that can be built from other units decay to the respective units by inverting the mathematical operation. I.e if Q = I * T
then Q / I = T
and Q / T = I
Unit | Dimension Symbol | Unit Symbol | buildable from | implemented literals | unit typedefs |
---|---|---|---|---|---|
Velocity | v | m/s | L / T | m_p_s , km_p_h , _c | metre_per_second_t , kilometre_per_second_t , speed_of_light_t |
Acceleration | a | m/s^2 | v / T, v^2 / L | none | none |
Electric charge | Q | C | I * T | aC to EC | *_coulomb_t |
Electric potential | U | V | P / I, E/Q | aV to EV | *_volt_t |
Electric resistance | O* | Ohm (Ω) | U / I, 1/G | aOhm to EOhm | *_ohm_t |
Electric conductance | G | S | I / U, 1/R | aS to ES | *_siemens_t |
Electric capacity | C | F | Q / U | aF to EF | *_farad_t |
Force | F | N | M * a | aN to EN | *_newton_t |
Pressure | p | pa | F / L^2 | apa to Epa | *_pascal_t |
Energy | E | J | F * L, p * L^3 | aJ to EJ | *_joule_t |
Power | P | W | E/T | aW to EW | *_watt_t |
Magnetic Flux | f* | Wb | U * T | aWb to EWb | *_weber_t |
Magnetic Field | B | T | f/L^2 | aT to ET | *_tesla_t |
Momentum | o* | kgâ‹…m/s | M * v | none | none |
Inductance | l | H | f / I | aH to EH | *_henry_t |
Luminous flux | m* | lm | J * R | alm to Elm | *_lumen_t |
Luminance | i* | lx | m / a | alx to Elx | *_lux_t |
Radioactivity | A | Bq | aBq to EBq | *_becquerel_t | |
Absorbed Dose | D | Gy | aGy to EGy | *_gray_t | |
Equivalent Dose | H | Sv | aSv to ESv | *_sievert_t | |
Catalytic activity | K | kat | N / T | akat to Ekat | *_katal_t |
Surface flow | s | m^2/s | L^2 / T | none | |
Volumetric flow | V | m^3/s | L^3 / T | none | |
Angular frequency | w* | rad/s | r / T | none |
Ω (Ohm)
and for magnetic flux Φ (Phi)
. Luminance should be Eb. Angular velocity should be ω (omega). Luminous flux should be Φv which is even less supported than Φ (Phi)
itself.Non standard units are not regulated by the BIPM but are accepted for use with the SI standard.
+Unit | Dimension Symbol | literals | implemented ratios | unit typedefs |
---|---|---|---|---|
Astronomic Units of length | L | AU, ly, pc | 149597870691:1 (AU), 9460730777119564:1 (ly), 30856775814913700:1 (pc) | astronomic_unit_t (_AU ), lightyear_t (_ly ), parsec_t (_pc ) |
SI is a header-only library that uses C++17 features. Building is tested using cmake > 3.23 and verified for g++7, g++8, clang5, clang6, clang7, msvc 19, and AppleClang 10.0. I recommend using conan 2.0 to download any dependencies for testing, but can be used without it, if the tests are not built.
+SI uses CMakeDeps generator of conan to find dependencies. To install the dependencies use
+substitute --settings=build_type=Debug
with --settings=build_type=Release
to switch between debug and release builds.
By using the CMAkeDeps generator, you can either build manually or use the CMake presets provided.
+The default installation location for SI is /usr/local/lib/SI
. SI can be installed using raw cmake, cpack (cmakes package mechanism), or as a conan.io package provided from conan center
See the installation guide for detailed instructions
+Note: Getting SI as a conan package is preferred.
+To install with CMake's FetchContent, add the following to your CMakeLists.txt
+SI is available as 'raw' download from this repository but also as conan package. Getting SI from conan-center is the preferred way.
+For further information and deeper technical details refer to the implementation details document
+Versions above 2.0.0 will not be fully compatible with older versions because of the breaking changes mentioned in the changelog. From version 2.0.0 on the conan package is named lower case si
to conform to the conan naming convention.
+ |
+ 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.
+ |
+
#include "detail/number_parser.h"
#include "detail/operator_helpers.h"
#include "detail/unit.h"
#include "detail/unit_symbol.h"
#include "electric_current.h"
#include "magnetic_flux.h"
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::detail | |
Namespace containing implementation details for SI. | |
SI::literals | |
+Typedefs | |
template<typename _type , class _ratio = std::ratio<1>> | |
using | SI::inductance_t = detail::unit_t< 'l', std::ratio< 1 >, _type, _ratio > |
template<typename _type > | |
using | SI::atto_henry_t = inductance_t< _type, std::atto > |
specific units More... | |
template<typename _type > | |
using | SI::femto_henry_t = inductance_t< _type, std::femto > |
template<typename _type > | |
using | SI::pico_henry_t = inductance_t< _type, std::pico > |
template<typename _type > | |
using | SI::nano_henry_t = inductance_t< _type, std::nano > |
template<typename _type > | |
using | SI::micro_henry_t = inductance_t< _type, std::micro > |
template<typename _type > | |
using | SI::milli_henry_t = inductance_t< _type, std::milli > |
template<typename _type > | |
using | SI::henry_t = inductance_t< _type, std::ratio< 1 > > |
template<typename _type > | |
using | SI::kilo_henry_t = inductance_t< _type, std::kilo > |
template<typename _type > | |
using | SI::mega_henry_t = inductance_t< _type, std::mega > |
template<typename _type > | |
using | SI::giga_henry_t = inductance_t< _type, std::giga > |
template<typename _type > | |
using | SI::tera_henry_t = inductance_t< _type, std::tera > |
template<typename _type > | |
using | SI::peta_henry_t = inductance_t< _type, std::peta > |
template<typename _type > | |
using | SI::exa_henry_t = inductance_t< _type, std::exa > |
+Functions | |
template<char... _digits> | |
constexpr atto_henry_t< int64_t > | SI::literals::operator""_aH () |
template<char... _digits> | |
constexpr femto_henry_t< int64_t > | SI::literals::operator""_fH () |
template<char... _digits> | |
constexpr pico_henry_t< int64_t > | SI::literals::operator""_pH () |
template<char... _digits> | |
constexpr nano_henry_t< int64_t > | SI::literals::operator""_nH () |
template<char... _digits> | |
constexpr micro_henry_t< int64_t > | SI::literals::operator""_uH () |
template<char... _digits> | |
constexpr milli_henry_t< int64_t > | SI::literals::operator""_mH () |
template<char... _digits> | |
constexpr henry_t< int64_t > | SI::literals::operator""_H () |
template<char... _digits> | |
constexpr kilo_henry_t< int64_t > | SI::literals::operator""_kH () |
template<char... _digits> | |
constexpr mega_henry_t< int64_t > | SI::literals::operator""_MH () |
template<char... _digits> | |
constexpr giga_henry_t< int64_t > | SI::literals::operator""_GH () |
template<char... _digits> | |
constexpr tera_henry_t< int64_t > | SI::literals::operator""_TH () |
template<char... _digits> | |
constexpr peta_henry_t< int64_t > | SI::literals::operator""_PH () |
template<char... _digits> | |
constexpr exa_henry_t< int64_t > | SI::literals::operator""_EH () |
constexpr atto_henry_t< long double > | SI::literals::operator""_aH (long double value) |
constexpr femto_henry_t< long double > | SI::literals::operator""_fH (long double value) |
constexpr pico_henry_t< long double > | SI::literals::operator""_pH (long double value) |
constexpr nano_henry_t< long double > | SI::literals::operator""_nH (long double value) |
constexpr micro_henry_t< long double > | SI::literals::operator""_uH (long double value) |
constexpr milli_henry_t< long double > | SI::literals::operator""_mH (long double value) |
constexpr henry_t< long double > | SI::literals::operator""_H (long double value) |
constexpr kilo_henry_t< long double > | SI::literals::operator""_kH (long double value) |
constexpr mega_henry_t< long double > | SI::literals::operator""_MH (long double value) |
constexpr giga_henry_t< long double > | SI::literals::operator""_GH (long double value) |
constexpr tera_henry_t< long double > | SI::literals::operator""_TH (long double value) |
constexpr peta_henry_t< long double > | SI::literals::operator""_PH (long double value) |
constexpr exa_henry_t< long double > | SI::literals::operator""_EH (long double value) |
+ |
+ 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.
+ |
+
+ |
+ 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.
+ |
+
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ |
+ 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.
+ |
+
#include <limits>
#include <ratio>
#include <stdexcept>
#include "detail/number_parser.h"
#include "detail/unit.h"
#include "detail/unit_symbol.h"
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) |