diff --git a/cmake/warnings.cmake b/cmake/warnings.cmake index d816b947..e21ecdb2 100644 --- a/cmake/warnings.cmake +++ b/cmake/warnings.cmake @@ -75,8 +75,7 @@ function(set_warnings) -Woverloaded-virtual # warn if you overload (not override) a virtual function -Wcast-qual # warn on dropping const or volatile qualifiers -Wconversion # warn on type conversions that may lose data - # disabled due to the truncating on UDLs - # -Wsign-conversion # warn on sign conversions + -Wsign-conversion # warn on sign conversions -Wnull-dereference # warn if a null dereference is detected -Wdouble-promotion # warn if float is implicit promoted to double -Wformat=2 # warn on security issues around functions that format output (ie printf) diff --git a/docs/framework/quantities.rst b/docs/framework/quantities.rst index 0204984e..b7864c15 100644 --- a/docs/framework/quantities.rst +++ b/docs/framework/quantities.rst @@ -59,11 +59,11 @@ values the library provides :abbr:`UDL (User Defined Literal)` s for each inline namespace literals { - constexpr auto operator"" _q_km(unsigned long long l) { return length(l); } - constexpr auto operator"" _q_km(long double l) { return length(l); } + consteval auto operator"" _q_km(unsigned long long l) { return length(l); } + consteval auto operator"" _q_km(long double l) { return length(l); } - constexpr auto operator"" _q_km_per_h(unsigned long long l) { return speed(l); } - constexpr auto operator"" _q_km_per_h(long double l) { return speed(l); } + consteval auto operator"" _q_km_per_h(unsigned long long l) { return speed(l); } + consteval auto operator"" _q_km_per_h(long double l) { return speed(l); } } diff --git a/docs/use_cases/extensions.rst b/docs/use_cases/extensions.rst index 83693c8d..eee634a9 100644 --- a/docs/use_cases/extensions.rst +++ b/docs/use_cases/extensions.rst @@ -35,8 +35,8 @@ alias or an :abbr:`UDL (User Defined Literal)`:: using desks = si::area; // UDLs - constexpr auto operator"" _d(unsigned long long l) { return si::area(l); } - constexpr auto operator"" _d(long double l) { return si::area(l); } + consteval auto operator"" _d(unsigned long long l) { return si::area(l); } + consteval auto operator"" _d(long double l) { return si::area(l); } Right now I am fully set up for my project and can start my work of tracking the area taken by my desks:: @@ -156,8 +156,8 @@ define a new base dimension, its units, quantity helper, concept, and UDLs:: template concept People = QuantityOf; - constexpr auto operator"" _p(unsigned long long l) { return people(l); } - constexpr auto operator"" _p(long double l) { return people(l); } + consteval auto operator"" _p(unsigned long long l) { return people(l); } + consteval auto operator"" _p(long double l) { return people(l); } With the above we can now define a new derived dimension:: diff --git a/src/include/units/data/base/information.h b/src/include/units/data/base/information.h index 95205619..e6a3be70 100644 --- a/src/include/units/data/base/information.h +++ b/src/include/units/data/base/information.h @@ -55,20 +55,20 @@ using information = quantity; inline namespace literals { // bits -constexpr auto operator"" _q_b(unsigned long long l) { return information(l); } -constexpr auto operator"" _q_Kib(unsigned long long l) { return information(l); } -constexpr auto operator"" _q_Mib(unsigned long long l) { return information(l); } -constexpr auto operator"" _q_Gib(unsigned long long l) { return information(l); } -constexpr auto operator"" _q_Tib(unsigned long long l) { return information(l); } -constexpr auto operator"" _q_Pib(unsigned long long l) { return information(l); } +consteval auto operator"" _q_b(unsigned long long l) { gsl_Expects(std::in_range(l)); return information(static_cast(l)); } +consteval auto operator"" _q_Kib(unsigned long long l) { gsl_Expects(std::in_range(l)); return information(static_cast(l)); } +consteval auto operator"" _q_Mib(unsigned long long l) { gsl_Expects(std::in_range(l)); return information(static_cast(l)); } +consteval auto operator"" _q_Gib(unsigned long long l) { gsl_Expects(std::in_range(l)); return information(static_cast(l)); } +consteval auto operator"" _q_Tib(unsigned long long l) { gsl_Expects(std::in_range(l)); return information(static_cast(l)); } +consteval auto operator"" _q_Pib(unsigned long long l) { gsl_Expects(std::in_range(l)); return information(static_cast(l)); } // bytes -constexpr auto operator"" _q_B(unsigned long long l) { return information(l); } -constexpr auto operator"" _q_KiB(unsigned long long l) { return information(l); } -constexpr auto operator"" _q_MiB(unsigned long long l) { return information(l); } -constexpr auto operator"" _q_GiB(unsigned long long l) { return information(l); } -constexpr auto operator"" _q_TiB(unsigned long long l) { return information(l); } -constexpr auto operator"" _q_PiB(unsigned long long l) { return information(l); } +consteval auto operator"" _q_B(unsigned long long l) { gsl_Expects(std::in_range(l)); return information(static_cast(l)); } +consteval auto operator"" _q_KiB(unsigned long long l) { gsl_Expects(std::in_range(l)); return information(static_cast(l)); } +consteval auto operator"" _q_MiB(unsigned long long l) { gsl_Expects(std::in_range(l)); return information(static_cast(l)); } +consteval auto operator"" _q_GiB(unsigned long long l) { gsl_Expects(std::in_range(l)); return information(static_cast(l)); } +consteval auto operator"" _q_TiB(unsigned long long l) { gsl_Expects(std::in_range(l)); return information(static_cast(l)); } +consteval auto operator"" _q_PiB(unsigned long long l) { gsl_Expects(std::in_range(l)); return information(static_cast(l)); } } // namespace literals diff --git a/src/include/units/data/derived/bitrate.h b/src/include/units/data/derived/bitrate.h index 74e75d42..8b9736c1 100644 --- a/src/include/units/data/derived/bitrate.h +++ b/src/include/units/data/derived/bitrate.h @@ -47,12 +47,12 @@ using bitrate = quantity; inline namespace literals { // bits -constexpr auto operator"" _q_b_per_s(unsigned long long l) { return bitrate(l); } -constexpr auto operator"" _q_Kib_per_s(unsigned long long l) { return bitrate(l); } -constexpr auto operator"" _q_Mib_per_s(unsigned long long l) { return bitrate(l); } -constexpr auto operator"" _q_Gib_per_s(unsigned long long l) { return bitrate(l); } -constexpr auto operator"" _q_Tib_per_s(unsigned long long l) { return bitrate(l); } -constexpr auto operator"" _q_Pib_per_s(unsigned long long l) { return bitrate(l); } +consteval auto operator"" _q_b_per_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return bitrate(static_cast(l)); } +consteval auto operator"" _q_Kib_per_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return bitrate(static_cast(l)); } +consteval auto operator"" _q_Mib_per_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return bitrate(static_cast(l)); } +consteval auto operator"" _q_Gib_per_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return bitrate(static_cast(l)); } +consteval auto operator"" _q_Tib_per_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return bitrate(static_cast(l)); } +consteval auto operator"" _q_Pib_per_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return bitrate(static_cast(l)); } } // namespace literals diff --git a/src/include/units/generic/angle.h b/src/include/units/generic/angle.h index d52274bb..e26f34c2 100644 --- a/src/include/units/generic/angle.h +++ b/src/include/units/generic/angle.h @@ -41,8 +41,8 @@ using angle = quantity, U, Rep>; inline namespace literals { // rad -constexpr auto operator"" _q_rad(unsigned long long l) { return angle(l); } -constexpr auto operator"" _q_rad(long double l) { return angle(l); } +consteval auto operator"" _q_rad(unsigned long long l) { gsl_Expects(std::in_range(l)); return angle(static_cast(l)); } +consteval auto operator"" _q_rad(long double l) { return angle(l); } } // namespace literals diff --git a/src/include/units/physical/si/base/amount_of_substance.h b/src/include/units/physical/si/base/amount_of_substance.h index 151f7d49..2c40f5ff 100644 --- a/src/include/units/physical/si/base/amount_of_substance.h +++ b/src/include/units/physical/si/base/amount_of_substance.h @@ -39,8 +39,8 @@ using amount_of_substance = quantity; inline namespace literals { // mol -constexpr auto operator"" _q_mol(unsigned long long l) { return amount_of_substance(l); } -constexpr auto operator"" _q_mol(long double l) { return amount_of_substance(l); } +consteval auto operator"" _q_mol(unsigned long long l) { gsl_Expects(std::in_range(l)); return amount_of_substance(static_cast(l)); } +consteval auto operator"" _q_mol(long double l) { return amount_of_substance(l); } } // namespace literals diff --git a/src/include/units/physical/si/base/electric_current.h b/src/include/units/physical/si/base/electric_current.h index 6dd9067e..d5b41147 100644 --- a/src/include/units/physical/si/base/electric_current.h +++ b/src/include/units/physical/si/base/electric_current.h @@ -59,88 +59,88 @@ using electric_current = quantity; inline namespace literals { // A -constexpr auto operator"" _q_A(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_A(long double l) { return electric_current(l); } +consteval auto operator"" _q_A(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_A(long double l) { return electric_current(l); } // yA -constexpr auto operator"" _q_yA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_yA(long double l) { return electric_current(l); } +consteval auto operator"" _q_yA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_yA(long double l) { return electric_current(l); } // zA -constexpr auto operator"" _q_zA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_zA(long double l) { return electric_current(l); } +consteval auto operator"" _q_zA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_zA(long double l) { return electric_current(l); } // aA -constexpr auto operator"" _q_aA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_aA(long double l) { return electric_current(l); } +consteval auto operator"" _q_aA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_aA(long double l) { return electric_current(l); } // fA -constexpr auto operator"" _q_fA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_fA(long double l) { return electric_current(l); } +consteval auto operator"" _q_fA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_fA(long double l) { return electric_current(l); } // pA -constexpr auto operator"" _q_pA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_pA(long double l) { return electric_current(l); } +consteval auto operator"" _q_pA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_pA(long double l) { return electric_current(l); } // nA -constexpr auto operator"" _q_nA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_nA(long double l) { return electric_current(l); } +consteval auto operator"" _q_nA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_nA(long double l) { return electric_current(l); } // uA -constexpr auto operator"" _q_uA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_uA(long double l) { return electric_current(l); } +consteval auto operator"" _q_uA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_uA(long double l) { return electric_current(l); } // mA -constexpr auto operator"" _q_mA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_mA(long double l) { return electric_current(l); } +consteval auto operator"" _q_mA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_mA(long double l) { return electric_current(l); } // cA -constexpr auto operator"" _q_cA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_cA(long double l) { return electric_current(l); } +consteval auto operator"" _q_cA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_cA(long double l) { return electric_current(l); } // dA -constexpr auto operator"" _q_dA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_dA(long double l) { return electric_current(l); } +consteval auto operator"" _q_dA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_dA(long double l) { return electric_current(l); } // daA -constexpr auto operator"" _q_daA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_daA(long double l) { return electric_current(l); } +consteval auto operator"" _q_daA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_daA(long double l) { return electric_current(l); } // hA -constexpr auto operator"" _q_hA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_hA(long double l) { return electric_current(l); } +consteval auto operator"" _q_hA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_hA(long double l) { return electric_current(l); } // kA -constexpr auto operator"" _q_kA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_kA(long double l) { return electric_current(l); } +consteval auto operator"" _q_kA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_kA(long double l) { return electric_current(l); } // MA -constexpr auto operator"" _q_MA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_MA(long double l) { return electric_current(l); } +consteval auto operator"" _q_MA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_MA(long double l) { return electric_current(l); } // GA -constexpr auto operator"" _q_GA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_GA(long double l) { return electric_current(l); } +consteval auto operator"" _q_GA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_GA(long double l) { return electric_current(l); } // TA -constexpr auto operator"" _q_TA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_TA(long double l) { return electric_current(l); } +consteval auto operator"" _q_TA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_TA(long double l) { return electric_current(l); } // PA -constexpr auto operator"" _q_PA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_PA(long double l) { return electric_current(l); } +consteval auto operator"" _q_PA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_PA(long double l) { return electric_current(l); } // EA -constexpr auto operator"" _q_EA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_EA(long double l) { return electric_current(l); } +consteval auto operator"" _q_EA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_EA(long double l) { return electric_current(l); } // ZA -constexpr auto operator"" _q_ZA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_ZA(long double l) { return electric_current(l); } +consteval auto operator"" _q_ZA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_ZA(long double l) { return electric_current(l); } // YA -constexpr auto operator"" _q_YA(unsigned long long l) { return electric_current(l); } -constexpr auto operator"" _q_YA(long double l) { return electric_current(l); } +consteval auto operator"" _q_YA(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_current(static_cast(l)); } +consteval auto operator"" _q_YA(long double l) { return electric_current(l); } } // namespace literals diff --git a/src/include/units/physical/si/base/length.h b/src/include/units/physical/si/base/length.h index da4c7f2f..1344c2e1 100644 --- a/src/include/units/physical/si/base/length.h +++ b/src/include/units/physical/si/base/length.h @@ -61,92 +61,92 @@ using length = quantity; inline namespace literals { // m -constexpr auto operator"" _q_m(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_m(long double l) { return length(l); } +consteval auto operator"" _q_m(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_m(long double l) { return length(l); } // ym -constexpr auto operator"" _q_ym(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_ym(long double l) { return length(l); } +consteval auto operator"" _q_ym(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_ym(long double l) { return length(l); } // zm -constexpr auto operator"" _q_zm(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_zm(long double l) { return length(l); } +consteval auto operator"" _q_zm(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_zm(long double l) { return length(l); } // am -constexpr auto operator"" _q_am(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_am(long double l) { return length(l); } +consteval auto operator"" _q_am(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_am(long double l) { return length(l); } // fm -constexpr auto operator"" _q_fm(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_fm(long double l) { return length(l); } +consteval auto operator"" _q_fm(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_fm(long double l) { return length(l); } // pm -constexpr auto operator"" _q_pm(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_pm(long double l) { return length(l); } +consteval auto operator"" _q_pm(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_pm(long double l) { return length(l); } // nm -constexpr auto operator"" _q_nm(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_nm(long double l) { return length(l); } +consteval auto operator"" _q_nm(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_nm(long double l) { return length(l); } // um -constexpr auto operator"" _q_um(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_um(long double l) { return length(l); } +consteval auto operator"" _q_um(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_um(long double l) { return length(l); } // mm -constexpr auto operator"" _q_mm(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_mm(long double l) { return length(l); } +consteval auto operator"" _q_mm(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_mm(long double l) { return length(l); } // cm -constexpr auto operator"" _q_cm(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_cm(long double l) { return length(l); } +consteval auto operator"" _q_cm(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_cm(long double l) { return length(l); } // dm -constexpr auto operator"" _q_dm(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_dm(long double l) { return length(l); } +consteval auto operator"" _q_dm(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_dm(long double l) { return length(l); } // dam -constexpr auto operator"" _q_dam(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_dam(long double l) { return length(l); } +consteval auto operator"" _q_dam(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_dam(long double l) { return length(l); } // hm -constexpr auto operator"" _q_hm(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_hm(long double l) { return length(l); } +consteval auto operator"" _q_hm(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_hm(long double l) { return length(l); } // km -constexpr auto operator"" _q_km(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_km(long double l) { return length(l); } +consteval auto operator"" _q_km(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_km(long double l) { return length(l); } // Mm -constexpr auto operator"" _q_Mm(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_Mm(long double l) { return length(l); } +consteval auto operator"" _q_Mm(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_Mm(long double l) { return length(l); } // Gm -constexpr auto operator"" _q_Gm(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_Gm(long double l) { return length(l); } +consteval auto operator"" _q_Gm(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_Gm(long double l) { return length(l); } // Tm -constexpr auto operator"" _q_Tm(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_Tm(long double l) { return length(l); } +consteval auto operator"" _q_Tm(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_Tm(long double l) { return length(l); } // Pm -constexpr auto operator"" _q_Pm(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_Pm(long double l) { return length(l); } +consteval auto operator"" _q_Pm(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_Pm(long double l) { return length(l); } // Em -constexpr auto operator"" _q_Em(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_Em(long double l) { return length(l); } +consteval auto operator"" _q_Em(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_Em(long double l) { return length(l); } // Zm -constexpr auto operator"" _q_Zm(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_Zm(long double l) { return length(l); } +consteval auto operator"" _q_Zm(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_Zm(long double l) { return length(l); } // Ym -constexpr auto operator"" _q_Ym(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_Ym(long double l) { return length(l); } +consteval auto operator"" _q_Ym(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_Ym(long double l) { return length(l); } // au -constexpr auto operator"" _q_au(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_au(long double l) { return length(l); } +consteval auto operator"" _q_au(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_au(long double l) { return length(l); } } // namespace literals diff --git a/src/include/units/physical/si/base/luminous_intensity.h b/src/include/units/physical/si/base/luminous_intensity.h index 26b7ea59..71775d5b 100644 --- a/src/include/units/physical/si/base/luminous_intensity.h +++ b/src/include/units/physical/si/base/luminous_intensity.h @@ -59,88 +59,88 @@ using luminous_intensity = quantity; inline namespace literals { // cd -constexpr auto operator"" _q_cd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_cd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_cd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_cd(long double l) { return luminous_intensity(l); } // ycd -constexpr auto operator"" _q_ycd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_ycd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_ycd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_ycd(long double l) { return luminous_intensity(l); } // zcd -constexpr auto operator"" _q_zcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_zcd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_zcd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_zcd(long double l) { return luminous_intensity(l); } // acd -constexpr auto operator"" _q_acd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_acd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_acd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_acd(long double l) { return luminous_intensity(l); } // fcd -constexpr auto operator"" _q_fcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_fcd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_fcd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_fcd(long double l) { return luminous_intensity(l); } // pcd -constexpr auto operator"" _q_pcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_pcd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_pcd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_pcd(long double l) { return luminous_intensity(l); } // ncd -constexpr auto operator"" _q_ncd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_ncd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_ncd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_ncd(long double l) { return luminous_intensity(l); } // ucd -constexpr auto operator"" _q_ucd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_ucd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_ucd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_ucd(long double l) { return luminous_intensity(l); } // mcd -constexpr auto operator"" _q_mcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_mcd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_mcd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_mcd(long double l) { return luminous_intensity(l); } // ccd -constexpr auto operator"" _q_ccd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_ccd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_ccd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_ccd(long double l) { return luminous_intensity(l); } // dcd -constexpr auto operator"" _q_dcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_dcd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_dcd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_dcd(long double l) { return luminous_intensity(l); } // dacd -constexpr auto operator"" _q_dacd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_dacd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_dacd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_dacd(long double l) { return luminous_intensity(l); } // hcd -constexpr auto operator"" _q_hcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_hcd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_hcd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_hcd(long double l) { return luminous_intensity(l); } // kcd -constexpr auto operator"" _q_kcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_kcd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_kcd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_kcd(long double l) { return luminous_intensity(l); } // Mcd -constexpr auto operator"" _q_Mcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_Mcd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_Mcd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_Mcd(long double l) { return luminous_intensity(l); } // Gcd -constexpr auto operator"" _q_Gcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_Gcd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_Gcd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_Gcd(long double l) { return luminous_intensity(l); } // Tcd -constexpr auto operator"" _q_Tcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_Tcd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_Tcd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_Tcd(long double l) { return luminous_intensity(l); } // Pcd -constexpr auto operator"" _q_Pcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_Pcd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_Pcd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_Pcd(long double l) { return luminous_intensity(l); } // Ecd -constexpr auto operator"" _q_Ecd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_Ecd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_Ecd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_Ecd(long double l) { return luminous_intensity(l); } // Zcd -constexpr auto operator"" _q_Zcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_Zcd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_Zcd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_Zcd(long double l) { return luminous_intensity(l); } // Ycd -constexpr auto operator"" _q_Ycd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" _q_Ycd(long double l) { return luminous_intensity(l); } +consteval auto operator"" _q_Ycd(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminous_intensity(static_cast(l)); } +consteval auto operator"" _q_Ycd(long double l) { return luminous_intensity(l); } } // namespace literals diff --git a/src/include/units/physical/si/base/mass.h b/src/include/units/physical/si/base/mass.h index 8f54e6a0..c97b53af 100644 --- a/src/include/units/physical/si/base/mass.h +++ b/src/include/units/physical/si/base/mass.h @@ -83,176 +83,176 @@ using mass = quantity; inline namespace literals { // g -constexpr auto operator"" _q_g(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_g(long double l) { return mass(l); } +consteval auto operator"" _q_g(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_g(long double l) { return mass(l); } // yg -constexpr auto operator"" _q_yg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_yg(long double l) { return mass(l); } +consteval auto operator"" _q_yg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_yg(long double l) { return mass(l); } // zg -constexpr auto operator"" _q_zg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_zg(long double l) { return mass(l); } +consteval auto operator"" _q_zg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_zg(long double l) { return mass(l); } // ag -constexpr auto operator"" _q_ag(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_ag(long double l) { return mass(l); } +consteval auto operator"" _q_ag(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_ag(long double l) { return mass(l); } // fg -constexpr auto operator"" _q_fg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_fg(long double l) { return mass(l); } +consteval auto operator"" _q_fg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_fg(long double l) { return mass(l); } // pg -constexpr auto operator"" _q_pg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_pg(long double l) { return mass(l); } +consteval auto operator"" _q_pg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_pg(long double l) { return mass(l); } // ng -constexpr auto operator"" _q_ng(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_ng(long double l) { return mass(l); } +consteval auto operator"" _q_ng(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_ng(long double l) { return mass(l); } // ug -constexpr auto operator"" _q_ug(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_ug(long double l) { return mass(l); } +consteval auto operator"" _q_ug(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_ug(long double l) { return mass(l); } // mg -constexpr auto operator"" _q_mg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_mg(long double l) { return mass(l); } +consteval auto operator"" _q_mg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_mg(long double l) { return mass(l); } // cg -constexpr auto operator"" _q_cg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_cg(long double l) { return mass(l); } +consteval auto operator"" _q_cg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_cg(long double l) { return mass(l); } // dg -constexpr auto operator"" _q_dg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_dg(long double l) { return mass(l); } +consteval auto operator"" _q_dg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_dg(long double l) { return mass(l); } // dag -constexpr auto operator"" _q_dag(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_dag(long double l) { return mass(l); } +consteval auto operator"" _q_dag(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_dag(long double l) { return mass(l); } // hg -constexpr auto operator"" _q_hg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_hg(long double l) { return mass(l); } +consteval auto operator"" _q_hg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_hg(long double l) { return mass(l); } // kg -constexpr auto operator"" _q_kg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_kg(long double l) { return mass(l); } +consteval auto operator"" _q_kg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_kg(long double l) { return mass(l); } // Mg -constexpr auto operator"" _q_Mg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_Mg(long double l) { return mass(l); } +consteval auto operator"" _q_Mg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_Mg(long double l) { return mass(l); } // Gg -constexpr auto operator"" _q_Gg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_Gg(long double l) { return mass(l); } +consteval auto operator"" _q_Gg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_Gg(long double l) { return mass(l); } // Tg -constexpr auto operator"" _q_Tg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_Tg(long double l) { return mass(l); } +consteval auto operator"" _q_Tg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_Tg(long double l) { return mass(l); } // Pg -constexpr auto operator"" _q_Pg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_Pg(long double l) { return mass(l); } +consteval auto operator"" _q_Pg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_Pg(long double l) { return mass(l); } // Eg -constexpr auto operator"" _q_Eg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_Eg(long double l) { return mass(l); } +consteval auto operator"" _q_Eg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_Eg(long double l) { return mass(l); } // Zg -constexpr auto operator"" _q_Zg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_Zg(long double l) { return mass(l); } +consteval auto operator"" _q_Zg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_Zg(long double l) { return mass(l); } // Yg -constexpr auto operator"" _q_Yg(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_Yg(long double l) { return mass(l); } +consteval auto operator"" _q_Yg(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_Yg(long double l) { return mass(l); } // t -constexpr auto operator"" _q_t(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_t(long double l) { return mass(l); } +consteval auto operator"" _q_t(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_t(long double l) { return mass(l); } // yt -constexpr auto operator"" _q_yt(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_yt(long double l) { return mass(l); } +consteval auto operator"" _q_yt(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_yt(long double l) { return mass(l); } // zt -constexpr auto operator"" _q_zt(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_zt(long double l) { return mass(l); } +consteval auto operator"" _q_zt(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_zt(long double l) { return mass(l); } // at -constexpr auto operator"" _q_at(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_at(long double l) { return mass(l); } +consteval auto operator"" _q_at(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_at(long double l) { return mass(l); } // ft -/*constexpr auto operator"" _q_ft(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_ft(long double l) { return mass(l); }*/ +/*consteval auto operator"" _q_ft(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_ft(long double l) { return mass(l); }*/ // pt -constexpr auto operator"" _q_pt(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_pt(long double l) { return mass(l); } +consteval auto operator"" _q_pt(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_pt(long double l) { return mass(l); } // nt -constexpr auto operator"" _q_nt(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_nt(long double l) { return mass(l); } +consteval auto operator"" _q_nt(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_nt(long double l) { return mass(l); } // ut -constexpr auto operator"" _q_ut(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_ut(long double l) { return mass(l); } +consteval auto operator"" _q_ut(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_ut(long double l) { return mass(l); } // mt -constexpr auto operator"" _q_mt(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_mt(long double l) { return mass(l); } +consteval auto operator"" _q_mt(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_mt(long double l) { return mass(l); } // ct -constexpr auto operator"" _q_ct(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_ct(long double l) { return mass(l); } +consteval auto operator"" _q_ct(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_ct(long double l) { return mass(l); } // dt -constexpr auto operator"" _q_dt(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_dt(long double l) { return mass(l); } +consteval auto operator"" _q_dt(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_dt(long double l) { return mass(l); } // dat -constexpr auto operator"" _q_dat(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_dat(long double l) { return mass(l); } +consteval auto operator"" _q_dat(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_dat(long double l) { return mass(l); } // ht -constexpr auto operator"" _q_ht(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_ht(long double l) { return mass(l); } +consteval auto operator"" _q_ht(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_ht(long double l) { return mass(l); } // kt -constexpr auto operator"" _q_kt(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_kt(long double l) { return mass(l); } +consteval auto operator"" _q_kt(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_kt(long double l) { return mass(l); } // Mt -constexpr auto operator"" _q_Mt(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_Mt(long double l) { return mass(l); } +consteval auto operator"" _q_Mt(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_Mt(long double l) { return mass(l); } // Gt -constexpr auto operator"" _q_Gt(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_Gt(long double l) { return mass(l); } +consteval auto operator"" _q_Gt(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_Gt(long double l) { return mass(l); } // Tt -constexpr auto operator"" _q_Tt(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_Tt(long double l) { return mass(l); } +consteval auto operator"" _q_Tt(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_Tt(long double l) { return mass(l); } // Pt -constexpr auto operator"" _q_Pt(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_Pt(long double l) { return mass(l); } +consteval auto operator"" _q_Pt(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_Pt(long double l) { return mass(l); } // Et -constexpr auto operator"" _q_Et(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_Et(long double l) { return mass(l); } +consteval auto operator"" _q_Et(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_Et(long double l) { return mass(l); } // Zt -constexpr auto operator"" _q_Zt(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_Zt(long double l) { return mass(l); } +consteval auto operator"" _q_Zt(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_Zt(long double l) { return mass(l); } // Yt -constexpr auto operator"" _q_Yt(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_Yt(long double l) { return mass(l); } +consteval auto operator"" _q_Yt(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_Yt(long double l) { return mass(l); } // Da -constexpr auto operator"" _q_Da(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_Da(long double l) { return mass(l); } +consteval auto operator"" _q_Da(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_Da(long double l) { return mass(l); } } // namespace literals diff --git a/src/include/units/physical/si/base/thermodynamic_temperature.h b/src/include/units/physical/si/base/thermodynamic_temperature.h index cfaf0800..b70a9443 100644 --- a/src/include/units/physical/si/base/thermodynamic_temperature.h +++ b/src/include/units/physical/si/base/thermodynamic_temperature.h @@ -38,8 +38,8 @@ using thermodynamic_temperature = quantity(l); } -constexpr auto operator"" _q_K(long double l) { return thermodynamic_temperature(l); } +consteval auto operator"" _q_K(unsigned long long l) { gsl_Expects(std::in_range(l)); return thermodynamic_temperature(static_cast(l)); } +consteval auto operator"" _q_K(long double l) { return thermodynamic_temperature(l); } } // namespace literals diff --git a/src/include/units/physical/si/base/time.h b/src/include/units/physical/si/base/time.h index 4bc332b8..2e729162 100644 --- a/src/include/units/physical/si/base/time.h +++ b/src/include/units/physical/si/base/time.h @@ -50,52 +50,52 @@ using time = quantity; inline namespace literals { // ys -constexpr auto operator"" _q_ys(unsigned long long l) { return time(l); } -constexpr auto operator"" _q_ys(long double l) { return time(l); } +consteval auto operator"" _q_ys(unsigned long long l) { gsl_Expects(std::in_range(l)); return time(static_cast(l)); } +consteval auto operator"" _q_ys(long double l) { return time(l); } // zs -constexpr auto operator"" _q_zs(unsigned long long l) { return time(l); } -constexpr auto operator"" _q_zs(long double l) { return time(l); } +consteval auto operator"" _q_zs(unsigned long long l) { gsl_Expects(std::in_range(l)); return time(static_cast(l)); } +consteval auto operator"" _q_zs(long double l) { return time(l); } // as -constexpr auto operator"" _q_as(unsigned long long l) { return time(l); } -constexpr auto operator"" _q_as(long double l) { return time(l); } +consteval auto operator"" _q_as(unsigned long long l) { gsl_Expects(std::in_range(l)); return time(static_cast(l)); } +consteval auto operator"" _q_as(long double l) { return time(l); } // fs -constexpr auto operator"" _q_fs(unsigned long long l) { return time(l); } -constexpr auto operator"" _q_fs(long double l) { return time(l); } +consteval auto operator"" _q_fs(unsigned long long l) { gsl_Expects(std::in_range(l)); return time(static_cast(l)); } +consteval auto operator"" _q_fs(long double l) { return time(l); } // ps -constexpr auto operator"" _q_ps(unsigned long long l) { return time(l); } -constexpr auto operator"" _q_ps(long double l) { return time(l); } +consteval auto operator"" _q_ps(unsigned long long l) { gsl_Expects(std::in_range(l)); return time(static_cast(l)); } +consteval auto operator"" _q_ps(long double l) { return time(l); } // ns -constexpr auto operator"" _q_ns(unsigned long long l) { return time(l); } -constexpr auto operator"" _q_ns(long double l) { return time(l); } +consteval auto operator"" _q_ns(unsigned long long l) { gsl_Expects(std::in_range(l)); return time(static_cast(l)); } +consteval auto operator"" _q_ns(long double l) { return time(l); } // us -constexpr auto operator"" _q_us(unsigned long long l) { return time(l); } -constexpr auto operator"" _q_us(long double l) { return time(l); } +consteval auto operator"" _q_us(unsigned long long l) { gsl_Expects(std::in_range(l)); return time(static_cast(l)); } +consteval auto operator"" _q_us(long double l) { return time(l); } // ms -constexpr auto operator"" _q_ms(unsigned long long l) { return time(l); } -constexpr auto operator"" _q_ms(long double l) { return time(l); } +consteval auto operator"" _q_ms(unsigned long long l) { gsl_Expects(std::in_range(l)); return time(static_cast(l)); } +consteval auto operator"" _q_ms(long double l) { return time(l); } // s -constexpr auto operator"" _q_s(unsigned long long l) { return time(l); } -constexpr auto operator"" _q_s(long double l) { return time(l); } +consteval auto operator"" _q_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return time(static_cast(l)); } +consteval auto operator"" _q_s(long double l) { return time(l); } // min -constexpr auto operator"" _q_min(unsigned long long l) { return time(l); } -constexpr auto operator"" _q_min(long double l) { return time(l); } +consteval auto operator"" _q_min(unsigned long long l) { gsl_Expects(std::in_range(l)); return time(static_cast(l)); } +consteval auto operator"" _q_min(long double l) { return time(l); } // h -constexpr auto operator"" _q_h(unsigned long long l) { return time(l); } -constexpr auto operator"" _q_h(long double l) { return time(l); } +consteval auto operator"" _q_h(unsigned long long l) { gsl_Expects(std::in_range(l)); return time(static_cast(l)); } +consteval auto operator"" _q_h(long double l) { return time(l); } // d -constexpr auto operator"" _q_d(unsigned long long l) { return time(l); } -constexpr auto operator"" _q_d(long double l) { return time(l); } +consteval auto operator"" _q_d(unsigned long long l) { gsl_Expects(std::in_range(l)); return time(static_cast(l)); } +consteval auto operator"" _q_d(long double l) { return time(l); } } // namespace literals diff --git a/src/include/units/physical/si/cgs/base/length.h b/src/include/units/physical/si/cgs/base/length.h index ce89524d..6cf3b57f 100644 --- a/src/include/units/physical/si/cgs/base/length.h +++ b/src/include/units/physical/si/cgs/base/length.h @@ -37,8 +37,8 @@ using length = quantity; inline namespace literals { // cm -constexpr auto operator"" _q_cm(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_cm(long double l) { return length(l); } +consteval auto operator"" _q_cm(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_cm(long double l) { return length(l); } } // namespace literals diff --git a/src/include/units/physical/si/cgs/base/mass.h b/src/include/units/physical/si/cgs/base/mass.h index eef979d9..81a22964 100644 --- a/src/include/units/physical/si/cgs/base/mass.h +++ b/src/include/units/physical/si/cgs/base/mass.h @@ -37,8 +37,8 @@ using mass = quantity; inline namespace literals { // g -constexpr auto operator"" _q_g(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_g(long double l) { return mass(l); } +consteval auto operator"" _q_g(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_g(long double l) { return mass(l); } } // namespace literals diff --git a/src/include/units/physical/si/cgs/derived/acceleration.h b/src/include/units/physical/si/cgs/derived/acceleration.h index e938784c..18e831cd 100644 --- a/src/include/units/physical/si/cgs/derived/acceleration.h +++ b/src/include/units/physical/si/cgs/derived/acceleration.h @@ -37,8 +37,8 @@ using acceleration = quantity; inline namespace literals { // Gal -constexpr auto operator"" _q_Gal(unsigned long long l) { return acceleration(l); } -constexpr auto operator"" _q_Gal(long double l) { return acceleration(l); } +consteval auto operator"" _q_Gal(unsigned long long l) { gsl_Expects(std::in_range(l)); return acceleration(static_cast(l)); } +consteval auto operator"" _q_Gal(long double l) { return acceleration(l); } } // namespace literals diff --git a/src/include/units/physical/si/cgs/derived/area.h b/src/include/units/physical/si/cgs/derived/area.h index 209aa555..9b4c54cf 100644 --- a/src/include/units/physical/si/cgs/derived/area.h +++ b/src/include/units/physical/si/cgs/derived/area.h @@ -38,8 +38,8 @@ using area = quantity; inline namespace literals { // cm2 -constexpr auto operator"" _q_cm2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_cm2(long double l) { return area(l); } +consteval auto operator"" _q_cm2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_cm2(long double l) { return area(l); } } // namespace literals diff --git a/src/include/units/physical/si/cgs/derived/energy.h b/src/include/units/physical/si/cgs/derived/energy.h index fcca67a5..0c9910d9 100644 --- a/src/include/units/physical/si/cgs/derived/energy.h +++ b/src/include/units/physical/si/cgs/derived/energy.h @@ -39,8 +39,8 @@ using energy = quantity; inline namespace literals { // erg -constexpr auto operator"" _q_erg(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_erg(long double l) { return energy(l); } +consteval auto operator"" _q_erg(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_erg(long double l) { return energy(l); } } // namespace literals diff --git a/src/include/units/physical/si/cgs/derived/force.h b/src/include/units/physical/si/cgs/derived/force.h index 517a7941..ed720082 100644 --- a/src/include/units/physical/si/cgs/derived/force.h +++ b/src/include/units/physical/si/cgs/derived/force.h @@ -40,8 +40,8 @@ using force = quantity; inline namespace literals { // dyn -constexpr auto operator"" _q_dyn(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_dyn(long double l) { return force(l); } +consteval auto operator"" _q_dyn(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_dyn(long double l) { return force(l); } } // namespace literals diff --git a/src/include/units/physical/si/cgs/derived/power.h b/src/include/units/physical/si/cgs/derived/power.h index d15ed8a0..fe938336 100644 --- a/src/include/units/physical/si/cgs/derived/power.h +++ b/src/include/units/physical/si/cgs/derived/power.h @@ -39,8 +39,8 @@ using power = quantity; inline namespace literals { // erg/s -constexpr auto operator"" _q_erg_per_s(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_erg_per_s(long double l) { return power(l); } +consteval auto operator"" _q_erg_per_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_erg_per_s(long double l) { return power(l); } } // namespace literals diff --git a/src/include/units/physical/si/cgs/derived/pressure.h b/src/include/units/physical/si/cgs/derived/pressure.h index b10da148..b9c04a99 100644 --- a/src/include/units/physical/si/cgs/derived/pressure.h +++ b/src/include/units/physical/si/cgs/derived/pressure.h @@ -40,8 +40,8 @@ using pressure = quantity; inline namespace literals { // Ba -constexpr auto operator"" _q_Ba(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_Ba(long double l) { return pressure(l); } +consteval auto operator"" _q_Ba(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_Ba(long double l) { return pressure(l); } } // namespace literals diff --git a/src/include/units/physical/si/cgs/derived/speed.h b/src/include/units/physical/si/cgs/derived/speed.h index 80c74232..96d9c00b 100644 --- a/src/include/units/physical/si/cgs/derived/speed.h +++ b/src/include/units/physical/si/cgs/derived/speed.h @@ -38,8 +38,8 @@ using speed = quantity; inline namespace literals { // cm/s -constexpr auto operator"" _q_cm_per_s(unsigned long long l) { return speed(l); } -constexpr auto operator"" _q_cm_per_s(long double l) { return speed(l); } +consteval auto operator"" _q_cm_per_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return speed(static_cast(l)); } +consteval auto operator"" _q_cm_per_s(long double l) { return speed(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/absorbed_dose.h b/src/include/units/physical/si/derived/absorbed_dose.h index 724fe445..0fb7424b 100644 --- a/src/include/units/physical/si/derived/absorbed_dose.h +++ b/src/include/units/physical/si/derived/absorbed_dose.h @@ -59,88 +59,88 @@ using absorbed_dose = quantity; inline namespace literals { // Gy -constexpr auto operator"" _q_Gy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_Gy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_Gy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_Gy(long double l) { return absorbed_dose(l); } // yGy -constexpr auto operator"" _q_yGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_yGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_yGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_yGy(long double l) { return absorbed_dose(l); } // zGy -constexpr auto operator"" _q_zGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_zGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_zGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_zGy(long double l) { return absorbed_dose(l); } // aGy -constexpr auto operator"" _q_aGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_aGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_aGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_aGy(long double l) { return absorbed_dose(l); } // fGy -constexpr auto operator"" _q_fGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_fGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_fGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_fGy(long double l) { return absorbed_dose(l); } // pGy -constexpr auto operator"" _q_pGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_pGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_pGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_pGy(long double l) { return absorbed_dose(l); } // nGy -constexpr auto operator"" _q_nGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_nGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_nGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_nGy(long double l) { return absorbed_dose(l); } // uGy -constexpr auto operator"" _q_uGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_uGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_uGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_uGy(long double l) { return absorbed_dose(l); } // mGy -constexpr auto operator"" _q_mGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_mGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_mGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_mGy(long double l) { return absorbed_dose(l); } // cGy -constexpr auto operator"" _q_cGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_cGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_cGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_cGy(long double l) { return absorbed_dose(l); } // dGy -constexpr auto operator"" _q_dGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_dGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_dGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_dGy(long double l) { return absorbed_dose(l); } // daGy -constexpr auto operator"" _q_daGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_daGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_daGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_daGy(long double l) { return absorbed_dose(l); } // hGy -constexpr auto operator"" _q_hGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_hGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_hGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_hGy(long double l) { return absorbed_dose(l); } // kGy -constexpr auto operator"" _q_kGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_kGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_kGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_kGy(long double l) { return absorbed_dose(l); } // MGy -constexpr auto operator"" _q_MGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_MGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_MGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_MGy(long double l) { return absorbed_dose(l); } // GGy -constexpr auto operator"" _q_GGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_GGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_GGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_GGy(long double l) { return absorbed_dose(l); } // TGy -constexpr auto operator"" _q_TGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_TGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_TGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_TGy(long double l) { return absorbed_dose(l); } // PGy -constexpr auto operator"" _q_PGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_PGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_PGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_PGy(long double l) { return absorbed_dose(l); } // EGy -constexpr auto operator"" _q_EGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_EGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_EGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_EGy(long double l) { return absorbed_dose(l); } // ZGy -constexpr auto operator"" _q_ZGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_ZGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_ZGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_ZGy(long double l) { return absorbed_dose(l); } // YGy -constexpr auto operator"" _q_YGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" _q_YGy(long double l) { return absorbed_dose(l); } +consteval auto operator"" _q_YGy(unsigned long long l) { gsl_Expects(std::in_range(l)); return absorbed_dose(static_cast(l)); } +consteval auto operator"" _q_YGy(long double l) { return absorbed_dose(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/acceleration.h b/src/include/units/physical/si/derived/acceleration.h index 7aeb01bc..e32060f0 100644 --- a/src/include/units/physical/si/derived/acceleration.h +++ b/src/include/units/physical/si/derived/acceleration.h @@ -37,8 +37,8 @@ using acceleration = quantity; inline namespace literals { // m/s2 -constexpr auto operator"" _q_m_per_s2(unsigned long long l) { return acceleration(l); } -constexpr auto operator"" _q_m_per_s2(long double l) { return acceleration(l); } +consteval auto operator"" _q_m_per_s2(unsigned long long l) { gsl_Expects(std::in_range(l)); return acceleration(static_cast(l)); } +consteval auto operator"" _q_m_per_s2(long double l) { return acceleration(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/angular_velocity.h b/src/include/units/physical/si/derived/angular_velocity.h index d513505e..e4b67b00 100644 --- a/src/include/units/physical/si/derived/angular_velocity.h +++ b/src/include/units/physical/si/derived/angular_velocity.h @@ -40,8 +40,8 @@ using angular_velocity = quantity; inline namespace literals { // rad / s -constexpr auto operator"" _q_rad_per_s(unsigned long long l) { return angular_velocity(l); } -constexpr auto operator"" _q_rad_per_s(long double l) { return angular_velocity(l); } +consteval auto operator"" _q_rad_per_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return angular_velocity(static_cast(l)); } +consteval auto operator"" _q_rad_per_s(long double l) { return angular_velocity(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/area.h b/src/include/units/physical/si/derived/area.h index 54505a94..ec665920 100644 --- a/src/include/units/physical/si/derived/area.h +++ b/src/include/units/physical/si/derived/area.h @@ -60,92 +60,92 @@ using area = quantity; inline namespace literals { // m2 -constexpr auto operator"" _q_m2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_m2(long double l) { return area(l); } +consteval auto operator"" _q_m2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_m2(long double l) { return area(l); } // ym2 -constexpr auto operator"" _q_ym2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_ym2(long double l) { return area(l); } +consteval auto operator"" _q_ym2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_ym2(long double l) { return area(l); } // zm2 -constexpr auto operator"" _q_zm2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_zm2(long double l) { return area(l); } +consteval auto operator"" _q_zm2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_zm2(long double l) { return area(l); } // am2 -constexpr auto operator"" _q_am2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_am2(long double l) { return area(l); } +consteval auto operator"" _q_am2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_am2(long double l) { return area(l); } // fm2 -constexpr auto operator"" _q_fm2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_fm2(long double l) { return area(l); } +consteval auto operator"" _q_fm2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_fm2(long double l) { return area(l); } // pm2 -constexpr auto operator"" _q_pm2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_pm2(long double l) { return area(l); } +consteval auto operator"" _q_pm2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_pm2(long double l) { return area(l); } // nm2 -constexpr auto operator"" _q_nm2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_nm2(long double l) { return area(l); } +consteval auto operator"" _q_nm2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_nm2(long double l) { return area(l); } // um2 -constexpr auto operator"" _q_um2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_um2(long double l) { return area(l); } +consteval auto operator"" _q_um2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_um2(long double l) { return area(l); } // mm2 -constexpr auto operator"" _q_mm2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_mm2(long double l) { return area(l); } +consteval auto operator"" _q_mm2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_mm2(long double l) { return area(l); } // cm2 -constexpr auto operator"" _q_cm2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_cm2(long double l) { return area(l); } +consteval auto operator"" _q_cm2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_cm2(long double l) { return area(l); } // dm2 -constexpr auto operator"" _q_dm2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_dm2(long double l) { return area(l); } +consteval auto operator"" _q_dm2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_dm2(long double l) { return area(l); } // dam2 -constexpr auto operator"" _q_dam2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_dam2(long double l) { return area(l); } +consteval auto operator"" _q_dam2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_dam2(long double l) { return area(l); } // hm2 -constexpr auto operator"" _q_hm2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_hm2(long double l) { return area(l); } +consteval auto operator"" _q_hm2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_hm2(long double l) { return area(l); } // km2 -constexpr auto operator"" _q_km2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_km2(long double l) { return area(l); } +consteval auto operator"" _q_km2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_km2(long double l) { return area(l); } // Mm2 -constexpr auto operator"" _q_Mm2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_Mm2(long double l) { return area(l); } +consteval auto operator"" _q_Mm2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_Mm2(long double l) { return area(l); } // Gm2 -constexpr auto operator"" _q_Gm2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_Gm2(long double l) { return area(l); } +consteval auto operator"" _q_Gm2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_Gm2(long double l) { return area(l); } // Tm2 -constexpr auto operator"" _q_Tm2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_Tm2(long double l) { return area(l); } +consteval auto operator"" _q_Tm2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_Tm2(long double l) { return area(l); } // Pm2 -constexpr auto operator"" _q_Pm2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_Pm2(long double l) { return area(l); } +consteval auto operator"" _q_Pm2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_Pm2(long double l) { return area(l); } // Em2 -constexpr auto operator"" _q_Em2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_Em2(long double l) { return area(l); } +consteval auto operator"" _q_Em2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_Em2(long double l) { return area(l); } // Zm2 -constexpr auto operator"" _q_Zm2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_Zm2(long double l) { return area(l); } +consteval auto operator"" _q_Zm2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_Zm2(long double l) { return area(l); } // Ym2 -constexpr auto operator"" _q_Ym2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_Ym2(long double l) { return area(l); } +consteval auto operator"" _q_Ym2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_Ym2(long double l) { return area(l); } // ha -constexpr auto operator"" _q_ha(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_ha(long double l) { return area(l); } +consteval auto operator"" _q_ha(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_ha(long double l) { return area(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/capacitance.h b/src/include/units/physical/si/derived/capacitance.h index ecb74edb..18f1163b 100644 --- a/src/include/units/physical/si/derived/capacitance.h +++ b/src/include/units/physical/si/derived/capacitance.h @@ -60,88 +60,88 @@ using capacitance = quantity; inline namespace literals { // F -constexpr auto operator"" _q_F(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_F(long double l) { return capacitance(l); } +consteval auto operator"" _q_F(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_F(long double l) { return capacitance(l); } // yF -constexpr auto operator"" _q_yF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_yF(long double l) { return capacitance(l); } +consteval auto operator"" _q_yF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_yF(long double l) { return capacitance(l); } // zF -constexpr auto operator"" _q_zF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_zF(long double l) { return capacitance(l); } +consteval auto operator"" _q_zF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_zF(long double l) { return capacitance(l); } // aF -constexpr auto operator"" _q_aF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_aF(long double l) { return capacitance(l); } +consteval auto operator"" _q_aF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_aF(long double l) { return capacitance(l); } // fF -constexpr auto operator"" _q_fF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_fF(long double l) { return capacitance(l); } +consteval auto operator"" _q_fF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_fF(long double l) { return capacitance(l); } // pF -constexpr auto operator"" _q_pF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_pF(long double l) { return capacitance(l); } +consteval auto operator"" _q_pF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_pF(long double l) { return capacitance(l); } // nF -constexpr auto operator"" _q_nF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_nF(long double l) { return capacitance(l); } +consteval auto operator"" _q_nF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_nF(long double l) { return capacitance(l); } // uF -constexpr auto operator"" _q_uF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_uF(long double l) { return capacitance(l); } +consteval auto operator"" _q_uF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_uF(long double l) { return capacitance(l); } // mF -constexpr auto operator"" _q_mF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_mF(long double l) { return capacitance(l); } +consteval auto operator"" _q_mF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_mF(long double l) { return capacitance(l); } // cF -constexpr auto operator"" _q_cF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_cF(long double l) { return capacitance(l); } +consteval auto operator"" _q_cF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_cF(long double l) { return capacitance(l); } // dF -constexpr auto operator"" _q_dF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_dF(long double l) { return capacitance(l); } +consteval auto operator"" _q_dF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_dF(long double l) { return capacitance(l); } // daF -constexpr auto operator"" _q_daF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_daF(long double l) { return capacitance(l); } +consteval auto operator"" _q_daF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_daF(long double l) { return capacitance(l); } // hF -constexpr auto operator"" _q_hF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_hF(long double l) { return capacitance(l); } +consteval auto operator"" _q_hF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_hF(long double l) { return capacitance(l); } // kF -constexpr auto operator"" _q_kF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_kF(long double l) { return capacitance(l); } +consteval auto operator"" _q_kF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_kF(long double l) { return capacitance(l); } // MF -constexpr auto operator"" _q_MF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_MF(long double l) { return capacitance(l); } +consteval auto operator"" _q_MF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_MF(long double l) { return capacitance(l); } // GF -constexpr auto operator"" _q_GF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_GF(long double l) { return capacitance(l); } +consteval auto operator"" _q_GF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_GF(long double l) { return capacitance(l); } // TF -constexpr auto operator"" _q_TF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_TF(long double l) { return capacitance(l); } +consteval auto operator"" _q_TF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_TF(long double l) { return capacitance(l); } // PF -constexpr auto operator"" _q_PF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_PF(long double l) { return capacitance(l); } +consteval auto operator"" _q_PF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_PF(long double l) { return capacitance(l); } // EF -constexpr auto operator"" _q_EF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_EF(long double l) { return capacitance(l); } +consteval auto operator"" _q_EF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_EF(long double l) { return capacitance(l); } // ZF -constexpr auto operator"" _q_ZF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_ZF(long double l) { return capacitance(l); } +consteval auto operator"" _q_ZF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_ZF(long double l) { return capacitance(l); } // YF -constexpr auto operator"" _q_YF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" _q_YF(long double l) { return capacitance(l); } +consteval auto operator"" _q_YF(unsigned long long l) { gsl_Expects(std::in_range(l)); return capacitance(static_cast(l)); } +consteval auto operator"" _q_YF(long double l) { return capacitance(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/catalytic_activity.h b/src/include/units/physical/si/derived/catalytic_activity.h index c0a23714..f1b2e04d 100644 --- a/src/include/units/physical/si/derived/catalytic_activity.h +++ b/src/include/units/physical/si/derived/catalytic_activity.h @@ -62,92 +62,92 @@ using catalytic_activity = quantity; inline namespace literals { // kat -constexpr auto operator"" _q_kat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_kat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_kat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_kat(long double l) { return catalytic_activity(l); } // ykat -constexpr auto operator"" _q_ykat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_ykat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_ykat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_ykat(long double l) { return catalytic_activity(l); } // zkat -constexpr auto operator"" _q_zkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_zkat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_zkat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_zkat(long double l) { return catalytic_activity(l); } // akat -constexpr auto operator"" _q_akat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_akat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_akat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_akat(long double l) { return catalytic_activity(l); } // fkat -constexpr auto operator"" _q_fkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_fkat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_fkat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_fkat(long double l) { return catalytic_activity(l); } // pkat -constexpr auto operator"" _q_pkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_pkat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_pkat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_pkat(long double l) { return catalytic_activity(l); } // nkat -constexpr auto operator"" _q_nkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_nkat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_nkat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_nkat(long double l) { return catalytic_activity(l); } // ukat -constexpr auto operator"" _q_ukat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_ukat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_ukat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_ukat(long double l) { return catalytic_activity(l); } // mkat -constexpr auto operator"" _q_mkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_mkat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_mkat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_mkat(long double l) { return catalytic_activity(l); } // ckat -constexpr auto operator"" _q_ckat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_ckat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_ckat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_ckat(long double l) { return catalytic_activity(l); } // dkat -constexpr auto operator"" _q_dkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_dkat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_dkat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_dkat(long double l) { return catalytic_activity(l); } // dakat -constexpr auto operator"" _q_dakat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_dakat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_dakat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_dakat(long double l) { return catalytic_activity(l); } // hkat -constexpr auto operator"" _q_hkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_hkat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_hkat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_hkat(long double l) { return catalytic_activity(l); } // kkat -constexpr auto operator"" _q_kkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_kkat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_kkat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_kkat(long double l) { return catalytic_activity(l); } // Mkat -constexpr auto operator"" _q_Mkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_Mkat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_Mkat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_Mkat(long double l) { return catalytic_activity(l); } // Gkat -constexpr auto operator"" _q_Gkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_Gkat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_Gkat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_Gkat(long double l) { return catalytic_activity(l); } // Tkat -constexpr auto operator"" _q_Tkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_Tkat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_Tkat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_Tkat(long double l) { return catalytic_activity(l); } // Pkat -constexpr auto operator"" _q_Pkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_Pkat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_Pkat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_Pkat(long double l) { return catalytic_activity(l); } // Ekat -constexpr auto operator"" _q_Ekat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_Ekat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_Ekat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_Ekat(long double l) { return catalytic_activity(l); } // Zkat -constexpr auto operator"" _q_Zkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_Zkat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_Zkat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_Zkat(long double l) { return catalytic_activity(l); } // Ykat -constexpr auto operator"" _q_Ykat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_Ykat(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_Ykat(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_Ykat(long double l) { return catalytic_activity(l); } // U -constexpr auto operator"" _q_U(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" _q_U(long double l) { return catalytic_activity(l); } +consteval auto operator"" _q_U(unsigned long long l) { gsl_Expects(std::in_range(l)); return catalytic_activity(static_cast(l)); } +consteval auto operator"" _q_U(long double l) { return catalytic_activity(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/charge_density.h b/src/include/units/physical/si/derived/charge_density.h index 4389d8fd..74ae8313 100644 --- a/src/include/units/physical/si/derived/charge_density.h +++ b/src/include/units/physical/si/derived/charge_density.h @@ -45,12 +45,12 @@ using surface_charge_density = quantity; inline namespace literals { // C/m³ -constexpr auto operator"" _q_C_per_m3(unsigned long long l) { return charge_density(l); } -constexpr auto operator"" _q_C_per_m3(long double l) { return charge_density(l); } +consteval auto operator"" _q_C_per_m3(unsigned long long l) { gsl_Expects(std::in_range(l)); return charge_density(static_cast(l)); } +consteval auto operator"" _q_C_per_m3(long double l) { return charge_density(l); } // C/m² -constexpr auto operator"" _q_C_per_m2(unsigned long long l) { return surface_charge_density(l); } -constexpr auto operator"" _q_C_per_m2(long double l) { return surface_charge_density(l); } +consteval auto operator"" _q_C_per_m2(unsigned long long l) { gsl_Expects(std::in_range(l)); return surface_charge_density(static_cast(l)); } +consteval auto operator"" _q_C_per_m2(long double l) { return surface_charge_density(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/concentration.h b/src/include/units/physical/si/derived/concentration.h index 9b3130ad..f7f4e419 100644 --- a/src/include/units/physical/si/derived/concentration.h +++ b/src/include/units/physical/si/derived/concentration.h @@ -38,8 +38,8 @@ using concentration = quantity; inline namespace literals { // mol/m³ -constexpr auto operator"" _q_mol_per_m3(unsigned long long l) { return concentration(l); } -constexpr auto operator"" _q_mol_per_m3(long double l) { return concentration(l); } +consteval auto operator"" _q_mol_per_m3(unsigned long long l) { gsl_Expects(std::in_range(l)); return concentration(static_cast(l)); } +consteval auto operator"" _q_mol_per_m3(long double l) { return concentration(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/conductance.h b/src/include/units/physical/si/derived/conductance.h index cd246a64..e36ee564 100644 --- a/src/include/units/physical/si/derived/conductance.h +++ b/src/include/units/physical/si/derived/conductance.h @@ -55,72 +55,72 @@ using conductance = quantity; inline namespace literals { // R -constexpr auto operator"" _q_S(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_S(long double l) { return conductance(l); } +consteval auto operator"" _q_S(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_S(long double l) { return conductance(l); } // yS -constexpr auto operator"" _q_yS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_yS(long double l) { return conductance(l); } +consteval auto operator"" _q_yS(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_yS(long double l) { return conductance(l); } // zS -constexpr auto operator"" _q_zS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_zS(long double l) { return conductance(l); } +consteval auto operator"" _q_zS(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_zS(long double l) { return conductance(l); } // aS -constexpr auto operator"" _q_aS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_aS(long double l) { return conductance(l); } +consteval auto operator"" _q_aS(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_aS(long double l) { return conductance(l); } // fS -constexpr auto operator"" _q_fS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_fS(long double l) { return conductance(l); } +consteval auto operator"" _q_fS(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_fS(long double l) { return conductance(l); } // pS -constexpr auto operator"" _q_pS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_pS(long double l) { return conductance(l); } +consteval auto operator"" _q_pS(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_pS(long double l) { return conductance(l); } // nS -constexpr auto operator"" _q_nS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_nS(long double l) { return conductance(l); } +consteval auto operator"" _q_nS(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_nS(long double l) { return conductance(l); } // µS -constexpr auto operator"" _q_uS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_uS(long double l) { return conductance(l); } +consteval auto operator"" _q_uS(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_uS(long double l) { return conductance(l); } // mS -constexpr auto operator"" _q_mS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_mS(long double l) { return conductance(l); } +consteval auto operator"" _q_mS(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_mS(long double l) { return conductance(l); } // kS -constexpr auto operator"" _q_kS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_kS(long double l) { return conductance(l); } +consteval auto operator"" _q_kS(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_kS(long double l) { return conductance(l); } // MS -constexpr auto operator"" _q_MS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_MS(long double l) { return conductance(l); } +consteval auto operator"" _q_MS(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_MS(long double l) { return conductance(l); } // GS -constexpr auto operator"" _q_GS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_GS(long double l) { return conductance(l); } +consteval auto operator"" _q_GS(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_GS(long double l) { return conductance(l); } // TS -constexpr auto operator"" _q_TS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_TS(long double l) { return conductance(l); } +consteval auto operator"" _q_TS(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_TS(long double l) { return conductance(l); } // PS -constexpr auto operator"" _q_PS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_PS(long double l) { return conductance(l); } +consteval auto operator"" _q_PS(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_PS(long double l) { return conductance(l); } // ES -constexpr auto operator"" _q_ES(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_ES(long double l) { return conductance(l); } +consteval auto operator"" _q_ES(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_ES(long double l) { return conductance(l); } // ZS -constexpr auto operator"" _q_ZS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_ZS(long double l) { return conductance(l); } +consteval auto operator"" _q_ZS(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_ZS(long double l) { return conductance(l); } // YS -constexpr auto operator"" _q_YS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" _q_YS(long double l) { return conductance(l); } +consteval auto operator"" _q_YS(unsigned long long l) { gsl_Expects(std::in_range(l)); return conductance(static_cast(l)); } +consteval auto operator"" _q_YS(long double l) { return conductance(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/current_density.h b/src/include/units/physical/si/derived/current_density.h index 335cf6a7..13f93488 100644 --- a/src/include/units/physical/si/derived/current_density.h +++ b/src/include/units/physical/si/derived/current_density.h @@ -40,8 +40,8 @@ using current_density = quantity; inline namespace literals { // A / m² -constexpr auto operator"" _q_A_per_m2(unsigned long long l) { return current_density(l); } -constexpr auto operator"" _q_A_per_m2(long double l) { return current_density(l); } +consteval auto operator"" _q_A_per_m2(unsigned long long l) { gsl_Expects(std::in_range(l)); return current_density(static_cast(l)); } +consteval auto operator"" _q_A_per_m2(long double l) { return current_density(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/density.h b/src/include/units/physical/si/derived/density.h index 28bbe6ab..c3a5c6e9 100644 --- a/src/include/units/physical/si/derived/density.h +++ b/src/include/units/physical/si/derived/density.h @@ -40,8 +40,8 @@ using density = quantity; inline namespace literals { // kg / m³ -constexpr auto operator"" _q_kg_per_m3(unsigned long long l) { return density(l); } -constexpr auto operator"" _q_kg_per_m3(long double l) { return density(l); } +consteval auto operator"" _q_kg_per_m3(unsigned long long l) { gsl_Expects(std::in_range(l)); return density(static_cast(l)); } +consteval auto operator"" _q_kg_per_m3(long double l) { return density(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/dynamic_viscosity.h b/src/include/units/physical/si/derived/dynamic_viscosity.h index 4a42a68e..819dc07f 100644 --- a/src/include/units/physical/si/derived/dynamic_viscosity.h +++ b/src/include/units/physical/si/derived/dynamic_viscosity.h @@ -38,8 +38,8 @@ using dynamic_viscosity = quantity; inline namespace literals { // Pa·s -constexpr auto operator"" _q_Pa_s(unsigned long long l) { return dynamic_viscosity(l); } -constexpr auto operator"" _q_Pa_s(long double l) { return dynamic_viscosity(l); } +consteval auto operator"" _q_Pa_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return dynamic_viscosity(static_cast(l)); } +consteval auto operator"" _q_Pa_s(long double l) { return dynamic_viscosity(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/electric_charge.h b/src/include/units/physical/si/derived/electric_charge.h index 5710445a..289308f3 100644 --- a/src/include/units/physical/si/derived/electric_charge.h +++ b/src/include/units/physical/si/derived/electric_charge.h @@ -39,8 +39,8 @@ using electric_charge = quantity; inline namespace literals { // C -constexpr auto operator"" _q_C(unsigned long long l) { return electric_charge(l); } -constexpr auto operator"" _q_C(long double l) { return electric_charge(l); } +consteval auto operator"" _q_C(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_charge(static_cast(l)); } +consteval auto operator"" _q_C(long double l) { return electric_charge(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/electric_field_strength.h b/src/include/units/physical/si/derived/electric_field_strength.h index dd657971..b7989271 100644 --- a/src/include/units/physical/si/derived/electric_field_strength.h +++ b/src/include/units/physical/si/derived/electric_field_strength.h @@ -37,8 +37,8 @@ using electric_field_strength = quantity; inline namespace literals { // V/m -constexpr auto operator"" _q_V_per_m(unsigned long long l) { return electric_field_strength(l); } -constexpr auto operator"" _q_V_per_m(long double l) { return electric_field_strength(l); } +consteval auto operator"" _q_V_per_m(unsigned long long l) { gsl_Expects(std::in_range(l)); return electric_field_strength(static_cast(l)); } +consteval auto operator"" _q_V_per_m(long double l) { return electric_field_strength(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/energy.h b/src/include/units/physical/si/derived/energy.h index 535e76ed..8c5d6846 100644 --- a/src/include/units/physical/si/derived/energy.h +++ b/src/include/units/physical/si/derived/energy.h @@ -58,80 +58,80 @@ using energy = quantity; inline namespace literals { // J -constexpr auto operator"" _q_J(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_J(long double l) { return energy(l); } +consteval auto operator"" _q_J(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_J(long double l) { return energy(l); } // yJ -constexpr auto operator"" _q_yJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_yJ(long double l) { return energy(l); } +consteval auto operator"" _q_yJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_yJ(long double l) { return energy(l); } // zJ -constexpr auto operator"" _q_zJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_zJ(long double l) { return energy(l); } +consteval auto operator"" _q_zJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_zJ(long double l) { return energy(l); } // aJ -constexpr auto operator"" _q_aJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_aJ(long double l) { return energy(l); } +consteval auto operator"" _q_aJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_aJ(long double l) { return energy(l); } // fJ -constexpr auto operator"" _q_fJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_fJ(long double l) { return energy(l); } +consteval auto operator"" _q_fJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_fJ(long double l) { return energy(l); } // pJ -constexpr auto operator"" _q_pJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_pJ(long double l) { return energy(l); } +consteval auto operator"" _q_pJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_pJ(long double l) { return energy(l); } // nJ -constexpr auto operator"" _q_nJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_nJ(long double l) { return energy(l); } +consteval auto operator"" _q_nJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_nJ(long double l) { return energy(l); } // uJ -constexpr auto operator"" _q_uJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_uJ(long double l) { return energy(l); } +consteval auto operator"" _q_uJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_uJ(long double l) { return energy(l); } // mJ -constexpr auto operator"" _q_mJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_mJ(long double l) { return energy(l); } +consteval auto operator"" _q_mJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_mJ(long double l) { return energy(l); } // kJ -constexpr auto operator"" _q_kJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_kJ(long double l) { return energy(l); } +consteval auto operator"" _q_kJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_kJ(long double l) { return energy(l); } // MJ -constexpr auto operator"" _q_MJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_MJ(long double l) { return energy(l); } +consteval auto operator"" _q_MJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_MJ(long double l) { return energy(l); } // GJ -constexpr auto operator"" _q_GJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_GJ(long double l) { return energy(l); } +consteval auto operator"" _q_GJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_GJ(long double l) { return energy(l); } // TJ -constexpr auto operator"" _q_TJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_TJ(long double l) { return energy(l); } +consteval auto operator"" _q_TJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_TJ(long double l) { return energy(l); } // PJ -constexpr auto operator"" _q_PJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_PJ(long double l) { return energy(l); } +consteval auto operator"" _q_PJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_PJ(long double l) { return energy(l); } // EJ -constexpr auto operator"" _q_EJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_EJ(long double l) { return energy(l); } +consteval auto operator"" _q_EJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_EJ(long double l) { return energy(l); } // ZJ -constexpr auto operator"" _q_ZJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_ZJ(long double l) { return energy(l); } +consteval auto operator"" _q_ZJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_ZJ(long double l) { return energy(l); } // YJ -constexpr auto operator"" _q_YJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_YJ(long double l) { return energy(l); } +consteval auto operator"" _q_YJ(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_YJ(long double l) { return energy(l); } // eV -constexpr auto operator"" _q_eV(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_eV(long double l) { return energy(l); } +consteval auto operator"" _q_eV(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_eV(long double l) { return energy(l); } // GeV -constexpr auto operator"" _q_GeV(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_GeV(long double l) { return energy(l); } +consteval auto operator"" _q_GeV(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_GeV(long double l) { return energy(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/force.h b/src/include/units/physical/si/derived/force.h index 15f43ebb..19c3ea53 100644 --- a/src/include/units/physical/si/derived/force.h +++ b/src/include/units/physical/si/derived/force.h @@ -60,88 +60,88 @@ using force = quantity; inline namespace literals { // N -constexpr auto operator"" _q_N(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_N(long double l) { return force(l); } +consteval auto operator"" _q_N(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_N(long double l) { return force(l); } // yN -constexpr auto operator"" _q_yN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_yN(long double l) { return force(l); } +consteval auto operator"" _q_yN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_yN(long double l) { return force(l); } // zN -constexpr auto operator"" _q_zN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_zN(long double l) { return force(l); } +consteval auto operator"" _q_zN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_zN(long double l) { return force(l); } // aN -constexpr auto operator"" _q_aN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_aN(long double l) { return force(l); } +consteval auto operator"" _q_aN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_aN(long double l) { return force(l); } // fN -constexpr auto operator"" _q_fN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_fN(long double l) { return force(l); } +consteval auto operator"" _q_fN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_fN(long double l) { return force(l); } // pN -constexpr auto operator"" _q_pN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_pN(long double l) { return force(l); } +consteval auto operator"" _q_pN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_pN(long double l) { return force(l); } // nN -constexpr auto operator"" _q_nN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_nN(long double l) { return force(l); } +consteval auto operator"" _q_nN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_nN(long double l) { return force(l); } // uN -constexpr auto operator"" _q_uN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_uN(long double l) { return force(l); } +consteval auto operator"" _q_uN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_uN(long double l) { return force(l); } // mN -constexpr auto operator"" _q_mN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_mN(long double l) { return force(l); } +consteval auto operator"" _q_mN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_mN(long double l) { return force(l); } // cN -constexpr auto operator"" _q_cN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_cN(long double l) { return force(l); } +consteval auto operator"" _q_cN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_cN(long double l) { return force(l); } // dN -constexpr auto operator"" _q_dN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_dN(long double l) { return force(l); } +consteval auto operator"" _q_dN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_dN(long double l) { return force(l); } // daN -constexpr auto operator"" _q_daN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_daN(long double l) { return force(l); } +consteval auto operator"" _q_daN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_daN(long double l) { return force(l); } // hN -constexpr auto operator"" _q_hN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_hN(long double l) { return force(l); } +consteval auto operator"" _q_hN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_hN(long double l) { return force(l); } // kN -constexpr auto operator"" _q_kN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_kN(long double l) { return force(l); } +consteval auto operator"" _q_kN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_kN(long double l) { return force(l); } // MN -constexpr auto operator"" _q_MN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_MN(long double l) { return force(l); } +consteval auto operator"" _q_MN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_MN(long double l) { return force(l); } // GN -constexpr auto operator"" _q_GN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_GN(long double l) { return force(l); } +consteval auto operator"" _q_GN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_GN(long double l) { return force(l); } // TN -constexpr auto operator"" _q_TN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_TN(long double l) { return force(l); } +consteval auto operator"" _q_TN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_TN(long double l) { return force(l); } // PN -constexpr auto operator"" _q_PN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_PN(long double l) { return force(l); } +consteval auto operator"" _q_PN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_PN(long double l) { return force(l); } // EN -constexpr auto operator"" _q_EN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_EN(long double l) { return force(l); } +consteval auto operator"" _q_EN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_EN(long double l) { return force(l); } // ZN -constexpr auto operator"" _q_ZN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_ZN(long double l) { return force(l); } +consteval auto operator"" _q_ZN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_ZN(long double l) { return force(l); } // YN -constexpr auto operator"" _q_YN(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_YN(long double l) { return force(l); } +consteval auto operator"" _q_YN(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_YN(long double l) { return force(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/frequency.h b/src/include/units/physical/si/derived/frequency.h index 7c488234..d475a0ee 100644 --- a/src/include/units/physical/si/derived/frequency.h +++ b/src/include/units/physical/si/derived/frequency.h @@ -54,72 +54,72 @@ using frequency = quantity; inline namespace literals { // Hz -constexpr auto operator"" _q_Hz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_Hz(long double l) { return frequency(l); } +consteval auto operator"" _q_Hz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_Hz(long double l) { return frequency(l); } // yHz -constexpr auto operator"" _q_yHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_yHz(long double l) { return frequency(l); } +consteval auto operator"" _q_yHz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_yHz(long double l) { return frequency(l); } // zHz -constexpr auto operator"" _q_zHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_zHz(long double l) { return frequency(l); } +consteval auto operator"" _q_zHz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_zHz(long double l) { return frequency(l); } // aHz -constexpr auto operator"" _q_aHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_aHz(long double l) { return frequency(l); } +consteval auto operator"" _q_aHz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_aHz(long double l) { return frequency(l); } // fHz -constexpr auto operator"" _q_fHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_fHz(long double l) { return frequency(l); } +consteval auto operator"" _q_fHz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_fHz(long double l) { return frequency(l); } // pHz -constexpr auto operator"" _q_pHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_pHz(long double l) { return frequency(l); } +consteval auto operator"" _q_pHz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_pHz(long double l) { return frequency(l); } // nHz -constexpr auto operator"" _q_nHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_nHz(long double l) { return frequency(l); } +consteval auto operator"" _q_nHz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_nHz(long double l) { return frequency(l); } // uHz -constexpr auto operator"" _q_uHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_uHz(long double l) { return frequency(l); } +consteval auto operator"" _q_uHz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_uHz(long double l) { return frequency(l); } // mHz -constexpr auto operator"" _q_mHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_mHz(long double l) { return frequency(l); } +consteval auto operator"" _q_mHz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_mHz(long double l) { return frequency(l); } // kHz -constexpr auto operator"" _q_kHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_kHz(long double l) { return frequency(l); } +consteval auto operator"" _q_kHz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_kHz(long double l) { return frequency(l); } // MHz -constexpr auto operator"" _q_MHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_MHz(long double l) { return frequency(l); } +consteval auto operator"" _q_MHz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_MHz(long double l) { return frequency(l); } // GHz -constexpr auto operator"" _q_GHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_GHz(long double l) { return frequency(l); } +consteval auto operator"" _q_GHz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_GHz(long double l) { return frequency(l); } // THz -constexpr auto operator"" _q_THz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_THz(long double l) { return frequency(l); } +consteval auto operator"" _q_THz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_THz(long double l) { return frequency(l); } // PHz -constexpr auto operator"" _q_PHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_PHz(long double l) { return frequency(l); } +consteval auto operator"" _q_PHz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_PHz(long double l) { return frequency(l); } // EHz -constexpr auto operator"" _q_EHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_EHz(long double l) { return frequency(l); } +consteval auto operator"" _q_EHz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_EHz(long double l) { return frequency(l); } // ZHz -constexpr auto operator"" _q_ZHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_ZHz(long double l) { return frequency(l); } +consteval auto operator"" _q_ZHz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_ZHz(long double l) { return frequency(l); } // YHz -constexpr auto operator"" _q_YHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" _q_YHz(long double l) { return frequency(l); } +consteval auto operator"" _q_YHz(unsigned long long l) { gsl_Expects(std::in_range(l)); return frequency(static_cast(l)); } +consteval auto operator"" _q_YHz(long double l) { return frequency(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/heat_capacity.h b/src/include/units/physical/si/derived/heat_capacity.h index 9d78bc8e..b16b0653 100644 --- a/src/include/units/physical/si/derived/heat_capacity.h +++ b/src/include/units/physical/si/derived/heat_capacity.h @@ -51,16 +51,16 @@ using molar_heat_capacity = quantity; inline namespace literals { // J/K -constexpr auto operator"" _q_J_per_K(unsigned long long l) { return heat_capacity(l); } -constexpr auto operator"" _q_J_per_K(long double l) { return heat_capacity(l); } +consteval auto operator"" _q_J_per_K(unsigned long long l) { gsl_Expects(std::in_range(l)); return heat_capacity(static_cast(l)); } +consteval auto operator"" _q_J_per_K(long double l) { return heat_capacity(l); } // J/(kg·K) -constexpr auto operator"" _q_J_per_kg_K(unsigned long long l) { return specific_heat_capacity(l); } -constexpr auto operator"" _q_J_per_kg_K(long double l) { return specific_heat_capacity(l); } +consteval auto operator"" _q_J_per_kg_K(unsigned long long l) { gsl_Expects(std::in_range(l)); return specific_heat_capacity(static_cast(l)); } +consteval auto operator"" _q_J_per_kg_K(long double l) { return specific_heat_capacity(l); } // J/(mol·K) -constexpr auto operator"" _q_J_per_mol_K(unsigned long long l) { return molar_heat_capacity(l); } -constexpr auto operator"" _q_J_per_mol_K(long double l) { return molar_heat_capacity(l); } +consteval auto operator"" _q_J_per_mol_K(unsigned long long l) { gsl_Expects(std::in_range(l)); return molar_heat_capacity(static_cast(l)); } +consteval auto operator"" _q_J_per_mol_K(long double l) { return molar_heat_capacity(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/inductance.h b/src/include/units/physical/si/derived/inductance.h index 8adcbf8f..cc21708d 100644 --- a/src/include/units/physical/si/derived/inductance.h +++ b/src/include/units/physical/si/derived/inductance.h @@ -56,72 +56,72 @@ using inductance = quantity; inline namespace literals { // H -constexpr auto operator"" _q_H(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_H(long double l) { return inductance(l); } +consteval auto operator"" _q_H(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_H(long double l) { return inductance(l); } // yH -constexpr auto operator"" _q_yH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_yH(long double l) { return inductance(l); } +consteval auto operator"" _q_yH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_yH(long double l) { return inductance(l); } // zH -constexpr auto operator"" _q_zH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_zH(long double l) { return inductance(l); } +consteval auto operator"" _q_zH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_zH(long double l) { return inductance(l); } // aH -constexpr auto operator"" _q_aH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_aH(long double l) { return inductance(l); } +consteval auto operator"" _q_aH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_aH(long double l) { return inductance(l); } // fH -constexpr auto operator"" _q_fH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_fH(long double l) { return inductance(l); } +consteval auto operator"" _q_fH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_fH(long double l) { return inductance(l); } // pH -constexpr auto operator"" _q_pH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_pH(long double l) { return inductance(l); } +consteval auto operator"" _q_pH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_pH(long double l) { return inductance(l); } // nH -constexpr auto operator"" _q_nH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_nH(long double l) { return inductance(l); } +consteval auto operator"" _q_nH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_nH(long double l) { return inductance(l); } // µH -constexpr auto operator"" _q_uH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_uH(long double l) { return inductance(l); } +consteval auto operator"" _q_uH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_uH(long double l) { return inductance(l); } // mH -constexpr auto operator"" _q_mH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_mH(long double l) { return inductance(l); } +consteval auto operator"" _q_mH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_mH(long double l) { return inductance(l); } // kH -constexpr auto operator"" _q_kH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_kH(long double l) { return inductance(l); } +consteval auto operator"" _q_kH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_kH(long double l) { return inductance(l); } // MH -constexpr auto operator"" _q_MH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_MH(long double l) { return inductance(l); } +consteval auto operator"" _q_MH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_MH(long double l) { return inductance(l); } // GH -constexpr auto operator"" _q_GH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_GH(long double l) { return inductance(l); } +consteval auto operator"" _q_GH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_GH(long double l) { return inductance(l); } // TH -constexpr auto operator"" _q_TH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_TH(long double l) { return inductance(l); } +consteval auto operator"" _q_TH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_TH(long double l) { return inductance(l); } // PH -constexpr auto operator"" _q_PH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_PH(long double l) { return inductance(l); } +consteval auto operator"" _q_PH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_PH(long double l) { return inductance(l); } // EH -constexpr auto operator"" _q_EH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_EH(long double l) { return inductance(l); } +consteval auto operator"" _q_EH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_EH(long double l) { return inductance(l); } // ZH -constexpr auto operator"" _q_ZH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_ZH(long double l) { return inductance(l); } +consteval auto operator"" _q_ZH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_ZH(long double l) { return inductance(l); } // YH -constexpr auto operator"" _q_YH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" _q_YH(long double l) { return inductance(l); } +consteval auto operator"" _q_YH(unsigned long long l) { gsl_Expects(std::in_range(l)); return inductance(static_cast(l)); } +consteval auto operator"" _q_YH(long double l) { return inductance(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/luminance.h b/src/include/units/physical/si/derived/luminance.h index 54c906bc..63360c25 100644 --- a/src/include/units/physical/si/derived/luminance.h +++ b/src/include/units/physical/si/derived/luminance.h @@ -38,8 +38,8 @@ using luminance = quantity; inline namespace literals { // cd/m² -constexpr auto operator"" _q_cd_per_m2(unsigned long long l) { return luminance(l); } -constexpr auto operator"" _q_cd_per_m2(long double l) { return luminance(l); } +consteval auto operator"" _q_cd_per_m2(unsigned long long l) { gsl_Expects(std::in_range(l)); return luminance(static_cast(l)); } +consteval auto operator"" _q_cd_per_m2(long double l) { return luminance(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/magnetic_flux.h b/src/include/units/physical/si/derived/magnetic_flux.h index a065f352..288cbbe1 100644 --- a/src/include/units/physical/si/derived/magnetic_flux.h +++ b/src/include/units/physical/si/derived/magnetic_flux.h @@ -56,72 +56,72 @@ using magnetic_flux = quantity; inline namespace literals { // Wb -constexpr auto operator"" _q_Wb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_Wb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_Wb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_Wb(long double l) { return magnetic_flux(l); } // yWb -constexpr auto operator"" _q_yWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_yWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_yWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_yWb(long double l) { return magnetic_flux(l); } // zWb -constexpr auto operator"" _q_zWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_zWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_zWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_zWb(long double l) { return magnetic_flux(l); } // aWb -constexpr auto operator"" _q_aWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_aWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_aWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_aWb(long double l) { return magnetic_flux(l); } // fWb -constexpr auto operator"" _q_fWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_fWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_fWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_fWb(long double l) { return magnetic_flux(l); } // pWb -constexpr auto operator"" _q_pWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_pWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_pWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_pWb(long double l) { return magnetic_flux(l); } // nWb -constexpr auto operator"" _q_nWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_nWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_nWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_nWb(long double l) { return magnetic_flux(l); } // µWb -constexpr auto operator"" _q_uWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_uWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_uWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_uWb(long double l) { return magnetic_flux(l); } // mWb -constexpr auto operator"" _q_mWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_mWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_mWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_mWb(long double l) { return magnetic_flux(l); } // kWb -constexpr auto operator"" _q_kWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_kWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_kWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_kWb(long double l) { return magnetic_flux(l); } // MWb -constexpr auto operator"" _q_MWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_MWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_MWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_MWb(long double l) { return magnetic_flux(l); } // GWb -constexpr auto operator"" _q_GWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_GWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_GWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_GWb(long double l) { return magnetic_flux(l); } // TWb -constexpr auto operator"" _q_TWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_TWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_TWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_TWb(long double l) { return magnetic_flux(l); } // PWb -constexpr auto operator"" _q_PWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_PWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_PWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_PWb(long double l) { return magnetic_flux(l); } // EWb -constexpr auto operator"" _q_EWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_EWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_EWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_EWb(long double l) { return magnetic_flux(l); } // ZWb -constexpr auto operator"" _q_ZWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_ZWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_ZWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_ZWb(long double l) { return magnetic_flux(l); } // YWb -constexpr auto operator"" _q_YWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" _q_YWb(long double l) { return magnetic_flux(l); } +consteval auto operator"" _q_YWb(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_flux(static_cast(l)); } +consteval auto operator"" _q_YWb(long double l) { return magnetic_flux(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/magnetic_induction.h b/src/include/units/physical/si/derived/magnetic_induction.h index 90871e87..0ffe47bf 100644 --- a/src/include/units/physical/si/derived/magnetic_induction.h +++ b/src/include/units/physical/si/derived/magnetic_induction.h @@ -60,76 +60,76 @@ using magnetic_induction = quantity; inline namespace literals { // T -constexpr auto operator"" _q_T(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_T(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_T(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_T(long double l) { return magnetic_induction(l); } // yT -constexpr auto operator"" _q_yT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_yT(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_yT(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_yT(long double l) { return magnetic_induction(l); } // zT -constexpr auto operator"" _q_zT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_zT(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_zT(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_zT(long double l) { return magnetic_induction(l); } // aT -constexpr auto operator"" _q_aT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_aT(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_aT(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_aT(long double l) { return magnetic_induction(l); } // fT -constexpr auto operator"" _q_fT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_fT(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_fT(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_fT(long double l) { return magnetic_induction(l); } // pT -constexpr auto operator"" _q_pT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_pT(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_pT(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_pT(long double l) { return magnetic_induction(l); } // nT -constexpr auto operator"" _q_nT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_nT(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_nT(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_nT(long double l) { return magnetic_induction(l); } // µT -constexpr auto operator"" _q_uT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_uT(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_uT(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_uT(long double l) { return magnetic_induction(l); } // mT -constexpr auto operator"" _q_mT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_mT(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_mT(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_mT(long double l) { return magnetic_induction(l); } // kT -constexpr auto operator"" _q_kT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_kT(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_kT(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_kT(long double l) { return magnetic_induction(l); } // MT -constexpr auto operator"" _q_MT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_MT(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_MT(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_MT(long double l) { return magnetic_induction(l); } // GT -constexpr auto operator"" _q_GT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_GT(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_GT(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_GT(long double l) { return magnetic_induction(l); } // TT -constexpr auto operator"" _q_TT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_TT(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_TT(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_TT(long double l) { return magnetic_induction(l); } // PT -constexpr auto operator"" _q_PT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_PT(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_PT(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_PT(long double l) { return magnetic_induction(l); } // ET -constexpr auto operator"" _q_ET(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_ET(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_ET(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_ET(long double l) { return magnetic_induction(l); } // ZT -constexpr auto operator"" _q_ZT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_ZT(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_ZT(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_ZT(long double l) { return magnetic_induction(l); } // YT -constexpr auto operator"" _q_YT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_YT(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_YT(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_YT(long double l) { return magnetic_induction(l); } // G -constexpr auto operator"" _q_G(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" _q_G(long double l) { return magnetic_induction(l); } +consteval auto operator"" _q_G(unsigned long long l) { gsl_Expects(std::in_range(l)); return magnetic_induction(static_cast(l)); } +consteval auto operator"" _q_G(long double l) { return magnetic_induction(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/molar_energy.h b/src/include/units/physical/si/derived/molar_energy.h index 5d504939..0621f28c 100644 --- a/src/include/units/physical/si/derived/molar_energy.h +++ b/src/include/units/physical/si/derived/molar_energy.h @@ -40,8 +40,8 @@ using molar_energy = quantity; inline namespace literals { // J/mol -constexpr auto operator"" _q_J_per_mol(unsigned long long l) { return molar_energy(l); } -constexpr auto operator"" _q_J_per_mol(long double l) { return molar_energy(l); } +consteval auto operator"" _q_J_per_mol(unsigned long long l) { gsl_Expects(std::in_range(l)); return molar_energy(static_cast(l)); } +consteval auto operator"" _q_J_per_mol(long double l) { return molar_energy(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/momentum.h b/src/include/units/physical/si/derived/momentum.h index 01e4a8c4..9fd94d6e 100644 --- a/src/include/units/physical/si/derived/momentum.h +++ b/src/include/units/physical/si/derived/momentum.h @@ -38,8 +38,8 @@ using momentum = quantity; inline namespace literals { // kg*m/s -constexpr auto operator"" _q_kg_m_per_s(unsigned long long l) { return momentum(l); } -constexpr auto operator"" _q_kg_m_per_s(long double l) { return momentum(l); } +consteval auto operator"" _q_kg_m_per_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return momentum(static_cast(l)); } +consteval auto operator"" _q_kg_m_per_s(long double l) { return momentum(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/permeability.h b/src/include/units/physical/si/derived/permeability.h index 95e50642..7e9dec6f 100644 --- a/src/include/units/physical/si/derived/permeability.h +++ b/src/include/units/physical/si/derived/permeability.h @@ -39,8 +39,8 @@ using permeability = quantity; inline namespace literals { // H/m -constexpr auto operator"" _q_H_per_m(unsigned long long l) { return permeability(l); } -constexpr auto operator"" _q_H_per_m(long double l) { return permeability(l); } +consteval auto operator"" _q_H_per_m(unsigned long long l) { gsl_Expects(std::in_range(l)); return permeability(static_cast(l)); } +consteval auto operator"" _q_H_per_m(long double l) { return permeability(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/permittivity.h b/src/include/units/physical/si/derived/permittivity.h index 37d09e39..e9369b0b 100644 --- a/src/include/units/physical/si/derived/permittivity.h +++ b/src/include/units/physical/si/derived/permittivity.h @@ -39,8 +39,8 @@ using permittivity = quantity; inline namespace literals { // F/m -constexpr auto operator"" _q_F_per_m(unsigned long long l) { return permittivity(l); } -constexpr auto operator"" _q_F_per_m(long double l) { return permittivity(l); } +consteval auto operator"" _q_F_per_m(unsigned long long l) { gsl_Expects(std::in_range(l)); return permittivity(static_cast(l)); } +consteval auto operator"" _q_F_per_m(long double l) { return permittivity(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/power.h b/src/include/units/physical/si/derived/power.h index 9cd3568e..f2028246 100644 --- a/src/include/units/physical/si/derived/power.h +++ b/src/include/units/physical/si/derived/power.h @@ -55,72 +55,72 @@ using power = quantity; inline namespace literals { // W -constexpr auto operator"" _q_W(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_W(long double l) { return power(l); } +consteval auto operator"" _q_W(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_W(long double l) { return power(l); } // yW -constexpr auto operator"" _q_yW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_yW(long double l) { return power(l); } +consteval auto operator"" _q_yW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_yW(long double l) { return power(l); } // zW -constexpr auto operator"" _q_zW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_zW(long double l) { return power(l); } +consteval auto operator"" _q_zW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_zW(long double l) { return power(l); } // aW -constexpr auto operator"" _q_aW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_aW(long double l) { return power(l); } +consteval auto operator"" _q_aW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_aW(long double l) { return power(l); } // fW -constexpr auto operator"" _q_fW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_fW(long double l) { return power(l); } +consteval auto operator"" _q_fW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_fW(long double l) { return power(l); } // pW -constexpr auto operator"" _q_pW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_pW(long double l) { return power(l); } +consteval auto operator"" _q_pW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_pW(long double l) { return power(l); } // nW -constexpr auto operator"" _q_nW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_nW(long double l) { return power(l); } +consteval auto operator"" _q_nW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_nW(long double l) { return power(l); } // uW -constexpr auto operator"" _q_uW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_uW(long double l) { return power(l); } +consteval auto operator"" _q_uW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_uW(long double l) { return power(l); } // mW -constexpr auto operator"" _q_mW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_mW(long double l) { return power(l); } +consteval auto operator"" _q_mW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_mW(long double l) { return power(l); } // kW -constexpr auto operator"" _q_kW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_kW(long double l) { return power(l); } +consteval auto operator"" _q_kW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_kW(long double l) { return power(l); } // MW -constexpr auto operator"" _q_MW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_MW(long double l) { return power(l); } +consteval auto operator"" _q_MW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_MW(long double l) { return power(l); } // GW -constexpr auto operator"" _q_GW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_GW(long double l) { return power(l); } +consteval auto operator"" _q_GW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_GW(long double l) { return power(l); } // TW -constexpr auto operator"" _q_TW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_TW(long double l) { return power(l); } +consteval auto operator"" _q_TW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_TW(long double l) { return power(l); } // PW -constexpr auto operator"" _q_PW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_PW(long double l) { return power(l); } +consteval auto operator"" _q_PW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_PW(long double l) { return power(l); } // EW -constexpr auto operator"" _q_EW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_EW(long double l) { return power(l); } +consteval auto operator"" _q_EW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_EW(long double l) { return power(l); } // ZW -constexpr auto operator"" _q_ZW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_ZW(long double l) { return power(l); } +consteval auto operator"" _q_ZW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_ZW(long double l) { return power(l); } // YW -constexpr auto operator"" _q_YW(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_YW(long double l) { return power(l); } +consteval auto operator"" _q_YW(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_YW(long double l) { return power(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/pressure.h b/src/include/units/physical/si/derived/pressure.h index 62020959..7ec6e96c 100644 --- a/src/include/units/physical/si/derived/pressure.h +++ b/src/include/units/physical/si/derived/pressure.h @@ -60,88 +60,88 @@ using pressure = quantity; inline namespace literals { // Pa -constexpr auto operator"" _q_Pa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_Pa(long double l) { return pressure(l); } +consteval auto operator"" _q_Pa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_Pa(long double l) { return pressure(l); } // yPa -constexpr auto operator"" _q_yPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_yPa(long double l) { return pressure(l); } +consteval auto operator"" _q_yPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_yPa(long double l) { return pressure(l); } // zPa -constexpr auto operator"" _q_zPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_zPa(long double l) { return pressure(l); } +consteval auto operator"" _q_zPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_zPa(long double l) { return pressure(l); } // aPa -constexpr auto operator"" _q_aPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_aPa(long double l) { return pressure(l); } +consteval auto operator"" _q_aPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_aPa(long double l) { return pressure(l); } // fPa -constexpr auto operator"" _q_fPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_fPa(long double l) { return pressure(l); } +consteval auto operator"" _q_fPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_fPa(long double l) { return pressure(l); } // pPa -constexpr auto operator"" _q_pPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_pPa(long double l) { return pressure(l); } +consteval auto operator"" _q_pPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_pPa(long double l) { return pressure(l); } // nPa -constexpr auto operator"" _q_nPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_nPa(long double l) { return pressure(l); } +consteval auto operator"" _q_nPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_nPa(long double l) { return pressure(l); } // uPa -constexpr auto operator"" _q_uPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_uPa(long double l) { return pressure(l); } +consteval auto operator"" _q_uPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_uPa(long double l) { return pressure(l); } // mPa -constexpr auto operator"" _q_mPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_mPa(long double l) { return pressure(l); } +consteval auto operator"" _q_mPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_mPa(long double l) { return pressure(l); } // cPa -constexpr auto operator"" _q_cPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_cPa(long double l) { return pressure(l); } +consteval auto operator"" _q_cPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_cPa(long double l) { return pressure(l); } // dPa -constexpr auto operator"" _q_dPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_dPa(long double l) { return pressure(l); } +consteval auto operator"" _q_dPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_dPa(long double l) { return pressure(l); } // daPa -constexpr auto operator"" _q_daPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_daPa(long double l) { return pressure(l); } +consteval auto operator"" _q_daPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_daPa(long double l) { return pressure(l); } // hPa -constexpr auto operator"" _q_hPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_hPa(long double l) { return pressure(l); } +consteval auto operator"" _q_hPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_hPa(long double l) { return pressure(l); } // kPa -constexpr auto operator"" _q_kPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_kPa(long double l) { return pressure(l); } +consteval auto operator"" _q_kPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_kPa(long double l) { return pressure(l); } // MPa -constexpr auto operator"" _q_MPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_MPa(long double l) { return pressure(l); } +consteval auto operator"" _q_MPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_MPa(long double l) { return pressure(l); } // GPa -constexpr auto operator"" _q_GPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_GPa(long double l) { return pressure(l); } +consteval auto operator"" _q_GPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_GPa(long double l) { return pressure(l); } // TPa -constexpr auto operator"" _q_TPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_TPa(long double l) { return pressure(l); } +consteval auto operator"" _q_TPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_TPa(long double l) { return pressure(l); } // PPa -constexpr auto operator"" _q_PPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_PPa(long double l) { return pressure(l); } +consteval auto operator"" _q_PPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_PPa(long double l) { return pressure(l); } // EPa -constexpr auto operator"" _q_EPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_EPa(long double l) { return pressure(l); } +consteval auto operator"" _q_EPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_EPa(long double l) { return pressure(l); } // ZPa -constexpr auto operator"" _q_ZPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_ZPa(long double l) { return pressure(l); } +consteval auto operator"" _q_ZPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_ZPa(long double l) { return pressure(l); } // YPa -constexpr auto operator"" _q_YPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_YPa(long double l) { return pressure(l); } +consteval auto operator"" _q_YPa(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_YPa(long double l) { return pressure(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/resistance.h b/src/include/units/physical/si/derived/resistance.h index 50a69868..3cc84bdf 100644 --- a/src/include/units/physical/si/derived/resistance.h +++ b/src/include/units/physical/si/derived/resistance.h @@ -56,72 +56,72 @@ using resistance = quantity; inline namespace literals { // R -constexpr auto operator"" _q_R(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_R(long double l) { return resistance(l); } +consteval auto operator"" _q_R(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_R(long double l) { return resistance(l); } // yR -constexpr auto operator"" _q_yR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_yR(long double l) { return resistance(l); } +consteval auto operator"" _q_yR(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_yR(long double l) { return resistance(l); } // zR -constexpr auto operator"" _q_zR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_zR(long double l) { return resistance(l); } +consteval auto operator"" _q_zR(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_zR(long double l) { return resistance(l); } // aR -constexpr auto operator"" _q_aR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_aR(long double l) { return resistance(l); } +consteval auto operator"" _q_aR(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_aR(long double l) { return resistance(l); } // fR -constexpr auto operator"" _q_fR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_fR(long double l) { return resistance(l); } +consteval auto operator"" _q_fR(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_fR(long double l) { return resistance(l); } // pR -constexpr auto operator"" _q_pR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_pR(long double l) { return resistance(l); } +consteval auto operator"" _q_pR(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_pR(long double l) { return resistance(l); } // nR -constexpr auto operator"" _q_nR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_nR(long double l) { return resistance(l); } +consteval auto operator"" _q_nR(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_nR(long double l) { return resistance(l); } // uR -constexpr auto operator"" _q_uR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_uR(long double l) { return resistance(l); } +consteval auto operator"" _q_uR(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_uR(long double l) { return resistance(l); } // mR -constexpr auto operator"" _q_mR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_mR(long double l) { return resistance(l); } +consteval auto operator"" _q_mR(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_mR(long double l) { return resistance(l); } // kR -constexpr auto operator"" _q_kR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_kR(long double l) { return resistance(l); } +consteval auto operator"" _q_kR(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_kR(long double l) { return resistance(l); } // MR -constexpr auto operator"" _q_MR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_MR(long double l) { return resistance(l); } +consteval auto operator"" _q_MR(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_MR(long double l) { return resistance(l); } // GR -constexpr auto operator"" _q_GR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_GR(long double l) { return resistance(l); } +consteval auto operator"" _q_GR(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_GR(long double l) { return resistance(l); } // TR -constexpr auto operator"" _q_TR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_TR(long double l) { return resistance(l); } +consteval auto operator"" _q_TR(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_TR(long double l) { return resistance(l); } // PR -constexpr auto operator"" _q_PR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_PR(long double l) { return resistance(l); } +consteval auto operator"" _q_PR(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_PR(long double l) { return resistance(l); } // ER -constexpr auto operator"" _q_ER(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_ER(long double l) { return resistance(l); } +consteval auto operator"" _q_ER(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_ER(long double l) { return resistance(l); } // ZR -constexpr auto operator"" _q_ZR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_ZR(long double l) { return resistance(l); } +consteval auto operator"" _q_ZR(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_ZR(long double l) { return resistance(l); } // YR -constexpr auto operator"" _q_YR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" _q_YR(long double l) { return resistance(l); } +consteval auto operator"" _q_YR(unsigned long long l) { gsl_Expects(std::in_range(l)); return resistance(static_cast(l)); } +consteval auto operator"" _q_YR(long double l) { return resistance(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/speed.h b/src/include/units/physical/si/derived/speed.h index 63ccb144..93251ffe 100644 --- a/src/include/units/physical/si/derived/speed.h +++ b/src/include/units/physical/si/derived/speed.h @@ -40,12 +40,12 @@ using speed = quantity; inline namespace literals { // m/s -constexpr auto operator"" _q_m_per_s(unsigned long long l) { return speed(l); } -constexpr auto operator"" _q_m_per_s(long double l) { return speed(l); } +consteval auto operator"" _q_m_per_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return speed(static_cast(l)); } +consteval auto operator"" _q_m_per_s(long double l) { return speed(l); } // km/h -constexpr auto operator"" _q_km_per_h(unsigned long long l) { return speed(l); } -constexpr auto operator"" _q_km_per_h(long double l) { return speed(l); } +consteval auto operator"" _q_km_per_h(unsigned long long l) { gsl_Expects(std::in_range(l)); return speed(static_cast(l)); } +consteval auto operator"" _q_km_per_h(long double l) { return speed(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/surface_tension.h b/src/include/units/physical/si/derived/surface_tension.h index 644a39a5..51ea8a22 100644 --- a/src/include/units/physical/si/derived/surface_tension.h +++ b/src/include/units/physical/si/derived/surface_tension.h @@ -38,8 +38,8 @@ using surface_tension = quantity; inline namespace literals { // N/m -constexpr auto operator"" _q_N_per_m(unsigned long long l) { return surface_tension(l); } -constexpr auto operator"" _q_N_per_m(long double l) { return surface_tension(l); } +consteval auto operator"" _q_N_per_m(unsigned long long l) { gsl_Expects(std::in_range(l)); return surface_tension(static_cast(l)); } +consteval auto operator"" _q_N_per_m(long double l) { return surface_tension(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/thermal_conductivity.h b/src/include/units/physical/si/derived/thermal_conductivity.h index aea39450..73ee70cf 100644 --- a/src/include/units/physical/si/derived/thermal_conductivity.h +++ b/src/include/units/physical/si/derived/thermal_conductivity.h @@ -39,8 +39,8 @@ using thermal_conductivity = quantity; inline namespace literals { // W/(m K) -constexpr auto operator"" _q_W_per_m_K(unsigned long long l) { return thermal_conductivity(l); } -constexpr auto operator"" _q_W_per_m_K(long double l) { return thermal_conductivity(l); } +consteval auto operator"" _q_W_per_m_K(unsigned long long l) { gsl_Expects(std::in_range(l)); return thermal_conductivity(static_cast(l)); } +consteval auto operator"" _q_W_per_m_K(long double l) { return thermal_conductivity(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/torque.h b/src/include/units/physical/si/derived/torque.h index 62949f1d..73d12a89 100644 --- a/src/include/units/physical/si/derived/torque.h +++ b/src/include/units/physical/si/derived/torque.h @@ -40,8 +40,8 @@ using torque = quantity; inline namespace literals { // Nm -constexpr auto operator"" _q_Nm_per_rad(unsigned long long l) { return torque(l); } -constexpr auto operator"" _q_Nm_per_rad(long double l) { return torque(l); } +consteval auto operator"" _q_Nm_per_rad(unsigned long long l) { gsl_Expects(std::in_range(l)); return torque(static_cast(l)); } +consteval auto operator"" _q_Nm_per_rad(long double l) { return torque(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/voltage.h b/src/include/units/physical/si/derived/voltage.h index ebc8edc8..9b37fa27 100644 --- a/src/include/units/physical/si/derived/voltage.h +++ b/src/include/units/physical/si/derived/voltage.h @@ -60,88 +60,88 @@ using voltage = quantity; inline namespace literals { // V -constexpr auto operator"" _q_V(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_V(long double l) { return voltage(l); } +consteval auto operator"" _q_V(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_V(long double l) { return voltage(l); } // yV -constexpr auto operator"" _q_yV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_yV(long double l) { return voltage(l); } +consteval auto operator"" _q_yV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_yV(long double l) { return voltage(l); } // zV -constexpr auto operator"" _q_zV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_zV(long double l) { return voltage(l); } +consteval auto operator"" _q_zV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_zV(long double l) { return voltage(l); } // aV -constexpr auto operator"" _q_aV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_aV(long double l) { return voltage(l); } +consteval auto operator"" _q_aV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_aV(long double l) { return voltage(l); } // fV -constexpr auto operator"" _q_fV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_fV(long double l) { return voltage(l); } +consteval auto operator"" _q_fV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_fV(long double l) { return voltage(l); } // pV -constexpr auto operator"" _q_pV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_pV(long double l) { return voltage(l); } +consteval auto operator"" _q_pV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_pV(long double l) { return voltage(l); } // nV -constexpr auto operator"" _q_nV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_nV(long double l) { return voltage(l); } +consteval auto operator"" _q_nV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_nV(long double l) { return voltage(l); } // uV -constexpr auto operator"" _q_uV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_uV(long double l) { return voltage(l); } +consteval auto operator"" _q_uV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_uV(long double l) { return voltage(l); } // mV -constexpr auto operator"" _q_mV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_mV(long double l) { return voltage(l); } +consteval auto operator"" _q_mV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_mV(long double l) { return voltage(l); } // cV -constexpr auto operator"" _q_cV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_cV(long double l) { return voltage(l); } +consteval auto operator"" _q_cV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_cV(long double l) { return voltage(l); } // dV -constexpr auto operator"" _q_dV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_dV(long double l) { return voltage(l); } +consteval auto operator"" _q_dV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_dV(long double l) { return voltage(l); } // daV -constexpr auto operator"" _q_daV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_daV(long double l) { return voltage(l); } +consteval auto operator"" _q_daV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_daV(long double l) { return voltage(l); } // hV -constexpr auto operator"" _q_hV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_hV(long double l) { return voltage(l); } +consteval auto operator"" _q_hV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_hV(long double l) { return voltage(l); } // kV -constexpr auto operator"" _q_kV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_kV(long double l) { return voltage(l); } +consteval auto operator"" _q_kV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_kV(long double l) { return voltage(l); } // MV -constexpr auto operator"" _q_MV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_MV(long double l) { return voltage(l); } +consteval auto operator"" _q_MV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_MV(long double l) { return voltage(l); } // GV -constexpr auto operator"" _q_GV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_GV(long double l) { return voltage(l); } +consteval auto operator"" _q_GV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_GV(long double l) { return voltage(l); } // TV -constexpr auto operator"" _q_TV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_TV(long double l) { return voltage(l); } +consteval auto operator"" _q_TV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_TV(long double l) { return voltage(l); } // PV -constexpr auto operator"" _q_PV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_PV(long double l) { return voltage(l); } +consteval auto operator"" _q_PV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_PV(long double l) { return voltage(l); } // EV -constexpr auto operator"" _q_EV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_EV(long double l) { return voltage(l); } +consteval auto operator"" _q_EV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_EV(long double l) { return voltage(l); } // ZV -constexpr auto operator"" _q_ZV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_ZV(long double l) { return voltage(l); } +consteval auto operator"" _q_ZV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_ZV(long double l) { return voltage(l); } // YV -constexpr auto operator"" _q_YV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" _q_YV(long double l) { return voltage(l); } +consteval auto operator"" _q_YV(unsigned long long l) { gsl_Expects(std::in_range(l)); return voltage(static_cast(l)); } +consteval auto operator"" _q_YV(long double l) { return voltage(l); } } // namespace literals diff --git a/src/include/units/physical/si/derived/volume.h b/src/include/units/physical/si/derived/volume.h index c69eb8fa..29502874 100644 --- a/src/include/units/physical/si/derived/volume.h +++ b/src/include/units/physical/si/derived/volume.h @@ -80,172 +80,172 @@ using volume = quantity; inline namespace literals { // m3 -constexpr auto operator"" _q_m3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_m3(long double l) { return volume(l); } +consteval auto operator"" _q_m3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_m3(long double l) { return volume(l); } // ym3 -constexpr auto operator"" _q_ym3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_ym3(long double l) { return volume(l); } +consteval auto operator"" _q_ym3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_ym3(long double l) { return volume(l); } // zm3 -constexpr auto operator"" _q_zm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_zm3(long double l) { return volume(l); } +consteval auto operator"" _q_zm3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_zm3(long double l) { return volume(l); } // am3 -constexpr auto operator"" _q_am3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_am3(long double l) { return volume(l); } +consteval auto operator"" _q_am3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_am3(long double l) { return volume(l); } // fm3 -constexpr auto operator"" _q_fm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_fm3(long double l) { return volume(l); } +consteval auto operator"" _q_fm3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_fm3(long double l) { return volume(l); } // pm3 -constexpr auto operator"" _q_pm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_pm3(long double l) { return volume(l); } +consteval auto operator"" _q_pm3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_pm3(long double l) { return volume(l); } // nm3 -constexpr auto operator"" _q_nm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_nm3(long double l) { return volume(l); } +consteval auto operator"" _q_nm3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_nm3(long double l) { return volume(l); } // um3 -constexpr auto operator"" _q_um3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_um3(long double l) { return volume(l); } +consteval auto operator"" _q_um3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_um3(long double l) { return volume(l); } // mm3 -constexpr auto operator"" _q_mm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_mm3(long double l) { return volume(l); } +consteval auto operator"" _q_mm3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_mm3(long double l) { return volume(l); } // cm3 -constexpr auto operator"" _q_cm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_cm3(long double l) { return volume(l); } +consteval auto operator"" _q_cm3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_cm3(long double l) { return volume(l); } // dm3 -constexpr auto operator"" _q_dm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_dm3(long double l) { return volume(l); } +consteval auto operator"" _q_dm3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_dm3(long double l) { return volume(l); } // dam3 -constexpr auto operator"" _q_dam3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_dam3(long double l) { return volume(l); } +consteval auto operator"" _q_dam3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_dam3(long double l) { return volume(l); } // hm3 -constexpr auto operator"" _q_hm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_hm3(long double l) { return volume(l); } +consteval auto operator"" _q_hm3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_hm3(long double l) { return volume(l); } // km3 -constexpr auto operator"" _q_km3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_km3(long double l) { return volume(l); } +consteval auto operator"" _q_km3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_km3(long double l) { return volume(l); } // Mm3 -constexpr auto operator"" _q_Mm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_Mm3(long double l) { return volume(l); } +consteval auto operator"" _q_Mm3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_Mm3(long double l) { return volume(l); } // Gm3 -constexpr auto operator"" _q_Gm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_Gm3(long double l) { return volume(l); } +consteval auto operator"" _q_Gm3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_Gm3(long double l) { return volume(l); } // Tm3 -constexpr auto operator"" _q_Tm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_Tm3(long double l) { return volume(l); } +consteval auto operator"" _q_Tm3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_Tm3(long double l) { return volume(l); } // Pm3 -constexpr auto operator"" _q_Pm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_Pm3(long double l) { return volume(l); } +consteval auto operator"" _q_Pm3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_Pm3(long double l) { return volume(l); } // Em3 -constexpr auto operator"" _q_Em3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_Em3(long double l) { return volume(l); } +consteval auto operator"" _q_Em3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_Em3(long double l) { return volume(l); } // Zm3 -constexpr auto operator"" _q_Zm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_Zm3(long double l) { return volume(l); } +consteval auto operator"" _q_Zm3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_Zm3(long double l) { return volume(l); } // Ym3 -constexpr auto operator"" _q_Ym3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_Ym3(long double l) { return volume(l); } +consteval auto operator"" _q_Ym3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_Ym3(long double l) { return volume(l); } // l -constexpr auto operator"" _q_l(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_l(long double l) { return volume(l); } +consteval auto operator"" _q_l(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_l(long double l) { return volume(l); } // yl -constexpr auto operator"" _q_yl(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_yl(long double l) { return volume(l); } +consteval auto operator"" _q_yl(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_yl(long double l) { return volume(l); } // zl -constexpr auto operator"" _q_zl(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_zl(long double l) { return volume(l); } +consteval auto operator"" _q_zl(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_zl(long double l) { return volume(l); } // al -constexpr auto operator"" _q_al(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_al(long double l) { return volume(l); } +consteval auto operator"" _q_al(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_al(long double l) { return volume(l); } // fl -constexpr auto operator"" _q_fl(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_fl(long double l) { return volume(l); } +consteval auto operator"" _q_fl(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_fl(long double l) { return volume(l); } // pl -constexpr auto operator"" _q_pl(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_pl(long double l) { return volume(l); } +consteval auto operator"" _q_pl(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_pl(long double l) { return volume(l); } // nl -constexpr auto operator"" _q_nl(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_nl(long double l) { return volume(l); } +consteval auto operator"" _q_nl(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_nl(long double l) { return volume(l); } // ul -constexpr auto operator"" _q_ul(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_ul(long double l) { return volume(l); } +consteval auto operator"" _q_ul(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_ul(long double l) { return volume(l); } // ml -constexpr auto operator"" _q_ml(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_ml(long double l) { return volume(l); } +consteval auto operator"" _q_ml(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_ml(long double l) { return volume(l); } // cl -constexpr auto operator"" _q_cl(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_cl(long double l) { return volume(l); } +consteval auto operator"" _q_cl(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_cl(long double l) { return volume(l); } // dl -constexpr auto operator"" _q_dl(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_dl(long double l) { return volume(l); } +consteval auto operator"" _q_dl(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_dl(long double l) { return volume(l); } // dal -constexpr auto operator"" _q_dal(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_dal(long double l) { return volume(l); } +consteval auto operator"" _q_dal(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_dal(long double l) { return volume(l); } // hl -constexpr auto operator"" _q_hl(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_hl(long double l) { return volume(l); } +consteval auto operator"" _q_hl(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_hl(long double l) { return volume(l); } // kl -constexpr auto operator"" _q_kl(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_kl(long double l) { return volume(l); } +consteval auto operator"" _q_kl(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_kl(long double l) { return volume(l); } // Ml -constexpr auto operator"" _q_Ml(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_Ml(long double l) { return volume(l); } +consteval auto operator"" _q_Ml(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_Ml(long double l) { return volume(l); } // Gl -constexpr auto operator"" _q_Gl(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_Gl(long double l) { return volume(l); } +consteval auto operator"" _q_Gl(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_Gl(long double l) { return volume(l); } // Tl -constexpr auto operator"" _q_Tl(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_Tl(long double l) { return volume(l); } +consteval auto operator"" _q_Tl(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_Tl(long double l) { return volume(l); } // Pl -constexpr auto operator"" _q_Pl(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_Pl(long double l) { return volume(l); } +consteval auto operator"" _q_Pl(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_Pl(long double l) { return volume(l); } // El -constexpr auto operator"" _q_El(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_El(long double l) { return volume(l); } +consteval auto operator"" _q_El(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_El(long double l) { return volume(l); } // Zl -constexpr auto operator"" _q_Zl(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_Zl(long double l) { return volume(l); } +consteval auto operator"" _q_Zl(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_Zl(long double l) { return volume(l); } // Yl -constexpr auto operator"" _q_Yl(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_Yl(long double l) { return volume(l); } +consteval auto operator"" _q_Yl(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_Yl(long double l) { return volume(l); } } // namespace literals diff --git a/src/include/units/physical/si/fps/base/length.h b/src/include/units/physical/si/fps/base/length.h index 60bf46c6..e247d7b0 100644 --- a/src/include/units/physical/si/fps/base/length.h +++ b/src/include/units/physical/si/fps/base/length.h @@ -57,39 +57,39 @@ using length = quantity; inline namespace literals { // Thousandth -constexpr auto operator"" _q_thou(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_thou(long double l) { return length(l); } -constexpr auto operator"" _q_mil(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_mil(long double l) { return length(l); } +consteval auto operator"" _q_thou(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_thou(long double l) { return length(l); } +consteval auto operator"" _q_mil(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_mil(long double l) { return length(l); } // Inch -constexpr auto operator"" _q_in(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_in(long double l) { return length(l); } +consteval auto operator"" _q_in(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_in(long double l) { return length(l); } // Foot -constexpr auto operator"" _q_ft(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_ft(long double l) { return length(l); } +consteval auto operator"" _q_ft(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_ft(long double l) { return length(l); } // Yard -constexpr auto operator"" _q_yd(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_yd(long double l) { return length(l); } +consteval auto operator"" _q_yd(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_yd(long double l) { return length(l); } // Fathom -constexpr auto operator"" _q_ftm(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_ftm(long double l) { return length(l); } +consteval auto operator"" _q_ftm(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_ftm(long double l) { return length(l); } // Kiloyard -constexpr auto operator"" _q_kyd(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_kyd(long double l) { return length(l); } +consteval auto operator"" _q_kyd(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_kyd(long double l) { return length(l); } // Mile -constexpr auto operator"" _q_mile(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_mile(long double l) { return length(l); } +consteval auto operator"" _q_mile(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_mile(long double l) { return length(l); } // Nautical mile -constexpr auto operator"" _q_naut_mi(unsigned long long l) { return length(l); } -constexpr auto operator"" _q_naut_mi(long double l) { return length(l); } +consteval auto operator"" _q_naut_mi(unsigned long long l) { gsl_Expects(std::in_range(l)); return length(static_cast(l)); } +consteval auto operator"" _q_naut_mi(long double l) { return length(l); } } // namespace literals diff --git a/src/include/units/physical/si/fps/base/mass.h b/src/include/units/physical/si/fps/base/mass.h index 973e7051..e6ba56de 100644 --- a/src/include/units/physical/si/fps/base/mass.h +++ b/src/include/units/physical/si/fps/base/mass.h @@ -54,40 +54,40 @@ struct long_ton : named_scaled_unit(l); } -constexpr auto operator"" _q_gr(long double l) { return mass(l); } +consteval auto operator"" _q_gr(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_gr(long double l) { return mass(l); } // Dram -constexpr auto operator"" _q_dr(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_dr(long double l) { return mass(l); } +consteval auto operator"" _q_dr(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_dr(long double l) { return mass(l); } // Ounce -constexpr auto operator"" _q_oz(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_oz(long double l) { return mass(l); } +consteval auto operator"" _q_oz(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_oz(long double l) { return mass(l); } // Pound -constexpr auto operator"" _q_lb(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_lb(long double l) { return mass(l); } +consteval auto operator"" _q_lb(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_lb(long double l) { return mass(l); } // Stone -constexpr auto operator"" _q_st(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_st(long double l) { return mass(l); } +consteval auto operator"" _q_st(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_st(long double l) { return mass(l); } // Quarter -constexpr auto operator"" _q_qr(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_qr(long double l) { return mass(l); } +consteval auto operator"" _q_qr(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_qr(long double l) { return mass(l); } // Hundredweight -constexpr auto operator"" _q_cwt(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_cwt(long double l) { return mass(l); } +consteval auto operator"" _q_cwt(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_cwt(long double l) { return mass(l); } // Short ton -constexpr auto operator"" _q_ston(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_ston(long double l) { return mass(l); } +consteval auto operator"" _q_ston(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_ston(long double l) { return mass(l); } // Long Ton -constexpr auto operator"" _q_lton(unsigned long long l) { return mass(l); } -constexpr auto operator"" _q_lton(long double l) { return mass(l); } +consteval auto operator"" _q_lton(unsigned long long l) { gsl_Expects(std::in_range(l)); return mass(static_cast(l)); } +consteval auto operator"" _q_lton(long double l) { return mass(l); } } // namespace literals diff --git a/src/include/units/physical/si/fps/derived/acceleration.h b/src/include/units/physical/si/fps/derived/acceleration.h index eb641455..7d40b5b3 100644 --- a/src/include/units/physical/si/fps/derived/acceleration.h +++ b/src/include/units/physical/si/fps/derived/acceleration.h @@ -37,8 +37,8 @@ using acceleration = quantity; inline namespace literals { // ft/s2 -constexpr auto operator"" _q_ft_per_s2(unsigned long long l) { return acceleration(l); } -constexpr auto operator"" _q_ft_per_s2(long double l) { return acceleration(l); } +consteval auto operator"" _q_ft_per_s2(unsigned long long l) { gsl_Expects(std::in_range(l)); return acceleration(static_cast(l)); } +consteval auto operator"" _q_ft_per_s2(long double l) { return acceleration(l); } } // namespace literals diff --git a/src/include/units/physical/si/fps/derived/area.h b/src/include/units/physical/si/fps/derived/area.h index 1be36e40..072d0423 100644 --- a/src/include/units/physical/si/fps/derived/area.h +++ b/src/include/units/physical/si/fps/derived/area.h @@ -38,8 +38,8 @@ using area = quantity; inline namespace literals { // ft2 -constexpr auto operator"" _q_ft2(unsigned long long l) { return area(l); } -constexpr auto operator"" _q_ft2(long double l) { return area(l); } +consteval auto operator"" _q_ft2(unsigned long long l) { gsl_Expects(std::in_range(l)); return area(static_cast(l)); } +consteval auto operator"" _q_ft2(long double l) { return area(l); } } // namespace literals diff --git a/src/include/units/physical/si/fps/derived/density.h b/src/include/units/physical/si/fps/derived/density.h index 601eb712..ae742309 100644 --- a/src/include/units/physical/si/fps/derived/density.h +++ b/src/include/units/physical/si/fps/derived/density.h @@ -39,8 +39,8 @@ using density = quantity; inline namespace literals { // lb/ft³ -constexpr auto operator"" _q_lb_per_ft3(unsigned long long l) { return density(l); } -constexpr auto operator"" _q_lb_per_ft3(long double l) { return density(l); } +consteval auto operator"" _q_lb_per_ft3(unsigned long long l) { gsl_Expects(std::in_range(l)); return density(static_cast(l)); } +consteval auto operator"" _q_lb_per_ft3(long double l) { return density(l); } } // namespace literals diff --git a/src/include/units/physical/si/fps/derived/energy.h b/src/include/units/physical/si/fps/derived/energy.h index a2bd6d68..40e26145 100644 --- a/src/include/units/physical/si/fps/derived/energy.h +++ b/src/include/units/physical/si/fps/derived/energy.h @@ -46,12 +46,12 @@ using energy = quantity; inline namespace literals { // foot poundal -constexpr auto operator"" _q_ft_pdl(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_ft_pdl(long double l) { return energy(l); } +consteval auto operator"" _q_ft_pdl(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_ft_pdl(long double l) { return energy(l); } // foot_pound force -constexpr auto operator"" _q_ft_lbf(unsigned long long l) { return energy(l); } -constexpr auto operator"" _q_ft_lbf(long double l) { return energy(l); } +consteval auto operator"" _q_ft_lbf(unsigned long long l) { gsl_Expects(std::in_range(l)); return energy(static_cast(l)); } +consteval auto operator"" _q_ft_lbf(long double l) { return energy(l); } } // namespace literals diff --git a/src/include/units/physical/si/fps/derived/force.h b/src/include/units/physical/si/fps/derived/force.h index da4836e5..f42ff07b 100644 --- a/src/include/units/physical/si/fps/derived/force.h +++ b/src/include/units/physical/si/fps/derived/force.h @@ -49,16 +49,16 @@ using force = quantity; inline namespace literals { // poundal -constexpr auto operator"" _q_pdl(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_pdl(long double l) { return force(l); } +consteval auto operator"" _q_pdl(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_pdl(long double l) { return force(l); } // pound force -constexpr auto operator"" _q_lbf(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_lbf(long double l) { return force(l); } +consteval auto operator"" _q_lbf(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_lbf(long double l) { return force(l); } // kilopound force -constexpr auto operator"" _q_klbf(unsigned long long l) { return force(l); } -constexpr auto operator"" _q_klbf(long double l) { return force(l); } +consteval auto operator"" _q_klbf(unsigned long long l) { gsl_Expects(std::in_range(l)); return force(static_cast(l)); } +consteval auto operator"" _q_klbf(long double l) { return force(l); } } // namespace literals diff --git a/src/include/units/physical/si/fps/derived/power.h b/src/include/units/physical/si/fps/derived/power.h index 78400547..c2555a07 100644 --- a/src/include/units/physical/si/fps/derived/power.h +++ b/src/include/units/physical/si/fps/derived/power.h @@ -43,16 +43,16 @@ using power = quantity; inline namespace literals { // foot pound force per second -constexpr auto operator"" _q_ft_pdl_per_s(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_ft_pdl_per_s(long double l) { return power(l); } +consteval auto operator"" _q_ft_pdl_per_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_ft_pdl_per_s(long double l) { return power(l); } // foot pound force per second -constexpr auto operator"" _q_ft_lbf_per_s(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_ft_lbf_per_s(long double l) { return power(l); } +consteval auto operator"" _q_ft_lbf_per_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_ft_lbf_per_s(long double l) { return power(l); } // horse power -constexpr auto operator"" _q_hp(unsigned long long l) { return power(l); } -constexpr auto operator"" _q_hp(long double l) { return power(l); } +consteval auto operator"" _q_hp(unsigned long long l) { gsl_Expects(std::in_range(l)); return power(static_cast(l)); } +consteval auto operator"" _q_hp(long double l) { return power(l); } } // namespace literals diff --git a/src/include/units/physical/si/fps/derived/pressure.h b/src/include/units/physical/si/fps/derived/pressure.h index f3d9c7a4..c7535163 100644 --- a/src/include/units/physical/si/fps/derived/pressure.h +++ b/src/include/units/physical/si/fps/derived/pressure.h @@ -46,16 +46,16 @@ struct kilopound_force_per_inch_sq : prefixed_unit(l); } -constexpr auto operator"" _q_pdl_per_ft2(long double l) { return pressure(l); } +consteval auto operator"" _q_pdl_per_ft2(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_pdl_per_ft2(long double l) { return pressure(l); } // Pounds per square inch -constexpr auto operator"" _q_psi(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_psi(long double l) { return pressure(l); } +consteval auto operator"" _q_psi(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_psi(long double l) { return pressure(l); } // kilopounds per square inch -constexpr auto operator"" _q_kpsi(unsigned long long l) { return pressure(l); } -constexpr auto operator"" _q_kpsi(long double l) { return pressure(l); } +consteval auto operator"" _q_kpsi(unsigned long long l) { gsl_Expects(std::in_range(l)); return pressure(static_cast(l)); } +consteval auto operator"" _q_kpsi(long double l) { return pressure(l); } } // namespace literals diff --git a/src/include/units/physical/si/fps/derived/speed.h b/src/include/units/physical/si/fps/derived/speed.h index 0e75cbe0..a3e9f7ce 100644 --- a/src/include/units/physical/si/fps/derived/speed.h +++ b/src/include/units/physical/si/fps/derived/speed.h @@ -45,16 +45,16 @@ struct knot : alias_unit {}; inline namespace literals { // ft/s -constexpr auto operator"" _q_ft_per_s(unsigned long long l) { return speed(l); } -constexpr auto operator"" _q_ft_per_s(long double l) { return speed(l); } +consteval auto operator"" _q_ft_per_s(unsigned long long l) { gsl_Expects(std::in_range(l)); return speed(static_cast(l)); } +consteval auto operator"" _q_ft_per_s(long double l) { return speed(l); } // mph -constexpr auto operator"" _q_mph(unsigned long long l) { return speed(l); } -constexpr auto operator"" _q_mph(long double l) { return speed(l); } +consteval auto operator"" _q_mph(unsigned long long l) { gsl_Expects(std::in_range(l)); return speed(static_cast(l)); } +consteval auto operator"" _q_mph(long double l) { return speed(l); } // kn -constexpr auto operator"" _q_knot(unsigned long long l) { return speed(l); } -constexpr auto operator"" _q_knot(long double l) { return speed(l); } +consteval auto operator"" _q_knot(unsigned long long l) { gsl_Expects(std::in_range(l)); return speed(static_cast(l)); } +consteval auto operator"" _q_knot(long double l) { return speed(l); } } // namespace literals diff --git a/src/include/units/physical/si/fps/derived/volume.h b/src/include/units/physical/si/fps/derived/volume.h index 19e6f3a1..60b7989f 100644 --- a/src/include/units/physical/si/fps/derived/volume.h +++ b/src/include/units/physical/si/fps/derived/volume.h @@ -39,12 +39,12 @@ using volume = quantity; inline namespace literals { // ft3 -constexpr auto operator"" _q_ft3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_ft3(long double l) { return volume(l); } +consteval auto operator"" _q_ft3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_ft3(long double l) { return volume(l); } // yd3 -constexpr auto operator"" _q_yd3(unsigned long long l) { return volume(l); } -constexpr auto operator"" _q_yd3(long double l) { return volume(l); } +consteval auto operator"" _q_yd3(unsigned long long l) { gsl_Expects(std::in_range(l)); return volume(static_cast(l)); } +consteval auto operator"" _q_yd3(long double l) { return volume(l); } } // namespace literals diff --git a/src/include/units/physical/si/iau/base/length.h b/src/include/units/physical/si/iau/base/length.h index 60eb8689..f2aaa29f 100644 --- a/src/include/units/physical/si/iau/base/length.h +++ b/src/include/units/physical/si/iau/base/length.h @@ -39,16 +39,16 @@ struct angstrom : named_scaled_unit(l); } -constexpr auto operator"" _q_ly(long double l) { return si::length(l); } +consteval auto operator"" _q_ly(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_ly(long double l) { return si::length(l); } // pc -constexpr auto operator"" _q_pc(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_pc(long double l) { return si::length(l); } +consteval auto operator"" _q_pc(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_pc(long double l) { return si::length(l); } // angstrom -constexpr auto operator"" _q_angstrom(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_angstrom(long double l) { return si::length(l); } +consteval auto operator"" _q_angstrom(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_angstrom(long double l) { return si::length(l); } } // namespace literals diff --git a/src/include/units/physical/si/imperial/base/length.h b/src/include/units/physical/si/imperial/base/length.h index 4c77ae13..3e761beb 100644 --- a/src/include/units/physical/si/imperial/base/length.h +++ b/src/include/units/physical/si/imperial/base/length.h @@ -35,12 +35,12 @@ struct rod : named_scaled_unit {}; inline namespace literals { // ch -constexpr auto operator"" _q_ch(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_ch(long double l) { return si::length(l); } +consteval auto operator"" _q_ch(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_ch(long double l) { return si::length(l); } // rd -constexpr auto operator"" _q_rd(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_rd(long double l) { return si::length(l); } +consteval auto operator"" _q_rd(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_rd(long double l) { return si::length(l); } } // namespace literals diff --git a/src/include/units/physical/si/international/base/length.h b/src/include/units/physical/si/international/base/length.h index cf7d0645..e4e7cbf1 100644 --- a/src/include/units/physical/si/international/base/length.h +++ b/src/include/units/physical/si/international/base/length.h @@ -61,36 +61,36 @@ using mil = thou; inline namespace literals { // yd -constexpr auto operator"" _q_yd(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_yd(long double l) { return si::length(l); } +consteval auto operator"" _q_yd(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_yd(long double l) { return si::length(l); } // ft -constexpr auto operator"" _q_ft(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_ft(long double l) { return si::length(l); } +consteval auto operator"" _q_ft(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_ft(long double l) { return si::length(l); } // fathom -constexpr auto operator"" _q_fathom(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_fathom(long double l) { return si::length(l); } +consteval auto operator"" _q_fathom(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_fathom(long double l) { return si::length(l); } // in -constexpr auto operator"" _q_in(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_in(long double l) { return si::length(l); } +consteval auto operator"" _q_in(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_in(long double l) { return si::length(l); } // mi -constexpr auto operator"" _q_mi(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_mi(long double l) { return si::length(l); } +consteval auto operator"" _q_mi(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_mi(long double l) { return si::length(l); } // mi_naut -constexpr auto operator"" _q_naut_mi(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_naut_mi(long double l) { return si::length(l); } +consteval auto operator"" _q_naut_mi(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_naut_mi(long double l) { return si::length(l); } // thou -constexpr auto operator"" _q_thou(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_thou(long double l) { return si::length(l); } +consteval auto operator"" _q_thou(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_thou(long double l) { return si::length(l); } // mil -constexpr auto operator"" _q_mil(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_mil(long double l) { return si::length(l); } +consteval auto operator"" _q_mil(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_mil(long double l) { return si::length(l); } } // namespace literals diff --git a/src/include/units/physical/si/international/derived/area.h b/src/include/units/physical/si/international/derived/area.h index 3d1d23b7..494ad21a 100644 --- a/src/include/units/physical/si/international/derived/area.h +++ b/src/include/units/physical/si/international/derived/area.h @@ -32,8 +32,8 @@ struct square_foot : deduced_unit(l); } -constexpr auto operator"" _q_ft2(long double l) { return si::area(l); } +consteval auto operator"" _q_ft2(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::area(static_cast(l)); } +consteval auto operator"" _q_ft2(long double l) { return si::area(l); } } // namespace literals diff --git a/src/include/units/physical/si/international/derived/speed.h b/src/include/units/physical/si/international/derived/speed.h index b9a7fffd..c45c7df7 100644 --- a/src/include/units/physical/si/international/derived/speed.h +++ b/src/include/units/physical/si/international/derived/speed.h @@ -32,8 +32,8 @@ struct mile_per_hour : deduced_unit(l); } -constexpr auto operator"" _q_mi_per_h(long double l) { return si::speed(l); } +consteval auto operator"" _q_mi_per_h(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::speed(static_cast(l)); } +consteval auto operator"" _q_mi_per_h(long double l) { return si::speed(l); } } // namespace literals diff --git a/src/include/units/physical/si/international/derived/volume.h b/src/include/units/physical/si/international/derived/volume.h index 975440d0..5a3f127a 100644 --- a/src/include/units/physical/si/international/derived/volume.h +++ b/src/include/units/physical/si/international/derived/volume.h @@ -32,8 +32,8 @@ struct cubic_foot : deduced_unit(l); } -constexpr auto operator"" _q_ft3(long double l) { return si::volume(l); } +consteval auto operator"" _q_ft3(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::volume(static_cast(l)); } +consteval auto operator"" _q_ft3(long double l) { return si::volume(l); } } // namespace literals diff --git a/src/include/units/physical/si/typographic/base/length.h b/src/include/units/physical/si/typographic/base/length.h index b9828af7..2809cd1c 100644 --- a/src/include/units/physical/si/typographic/base/length.h +++ b/src/include/units/physical/si/typographic/base/length.h @@ -36,20 +36,20 @@ struct point_prn : named_scaled_unit(l); } -constexpr auto operator"" _q_pica_comp(long double l) { return si::length(l); } +consteval auto operator"" _q_pica_comp(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_pica_comp(long double l) { return si::length(l); } // pica prn -constexpr auto operator"" _q_pica_prn(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_pica_prn(long double l) { return si::length(l); } +consteval auto operator"" _q_pica_prn(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_pica_prn(long double l) { return si::length(l); } // point comp -constexpr auto operator"" _q_point_comp(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_point_comp(long double l) { return si::length(l); } +consteval auto operator"" _q_point_comp(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_point_comp(long double l) { return si::length(l); } // point prn -constexpr auto operator"" _q_point_prn(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_point_prn(long double l) { return si::length(l); } +consteval auto operator"" _q_point_prn(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_point_prn(long double l) { return si::length(l); } } // namespace literals diff --git a/src/include/units/physical/si/us/base/length.h b/src/include/units/physical/si/us/base/length.h index 49907fbb..e3f7d173 100644 --- a/src/include/units/physical/si/us/base/length.h +++ b/src/include/units/physical/si/us/base/length.h @@ -40,16 +40,16 @@ struct mile : named_scaled_unit {} inline namespace literals { // ft -constexpr auto operator"" _q_ft_us(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_ft_us(long double l) { return si::length(l); } +consteval auto operator"" _q_ft_us(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_ft_us(long double l) { return si::length(l); } // fathom -constexpr auto operator"" _q_fathom_us(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_fathom_us(long double l) { return si::length(l); } +consteval auto operator"" _q_fathom_us(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_fathom_us(long double l) { return si::length(l); } // mi -constexpr auto operator"" _q_mi_us(unsigned long long l) { return si::length(l); } -constexpr auto operator"" _q_mi_us(long double l) { return si::length(l); } +consteval auto operator"" _q_mi_us(unsigned long long l) { gsl_Expects(std::in_range(l)); return si::length(static_cast(l)); } +consteval auto operator"" _q_mi_us(long double l) { return si::length(l); } } // namespace literals