forked from mpusz/mp-units
[msvc][fix] update changes for master
This commit is contained in:
@@ -107,13 +107,13 @@ static_assert(is_of_type<quantity_point{sys_days{sys_days::duration{1}}},
|
||||
|
||||
// conversion to chrono
|
||||
static_assert(
|
||||
std::constructible_from<std::chrono::seconds, quantity<isq::time[si::second], std::chrono::seconds::rep>>);
|
||||
static_assert(std::convertible_to<quantity<isq::time[si::second], std::chrono::seconds::rep>, std::chrono::seconds>);
|
||||
static_assert(std::constructible_from<std::chrono::hours, quantity<isq::time[si::hour], std::chrono::hours::rep>>);
|
||||
static_assert(std::convertible_to<quantity<isq::time[si::hour], std::chrono::hours::rep>, std::chrono::hours>);
|
||||
std::constructible_from<std::chrono::seconds, quantity<(isq::time[si::second]), std::chrono::seconds::rep>>);
|
||||
static_assert(std::convertible_to<quantity<(isq::time[si::second]), std::chrono::seconds::rep>, std::chrono::seconds>);
|
||||
static_assert(std::constructible_from<std::chrono::hours, quantity<(isq::time[si::hour]), std::chrono::hours::rep>>);
|
||||
static_assert(std::convertible_to<quantity<(isq::time[si::hour]), std::chrono::hours::rep>, std::chrono::hours>);
|
||||
static_assert(
|
||||
std::constructible_from<sys_seconds, time_point<si::second, std::chrono::system_clock, sys_seconds::rep>>);
|
||||
static_assert(std::convertible_to<time_point<si::second, std::chrono::system_clock, sys_seconds::rep>, sys_seconds>);
|
||||
std::constructible_from<sys_seconds, time_point<(si::second), std::chrono::system_clock, sys_seconds::rep>>);
|
||||
static_assert(std::convertible_to<time_point<(si::second), std::chrono::system_clock, sys_seconds::rep>, sys_seconds>);
|
||||
|
||||
// units mapping
|
||||
static_assert(quantity{1ns} == 1 * ns);
|
||||
|
||||
@@ -155,31 +155,6 @@ static_assert(!Unit<int>);
|
||||
static_assert(!Unit<std::chrono::seconds>);
|
||||
#endif
|
||||
|
||||
// NamedUnit
|
||||
static_assert(detail::NamedUnit<struct si::metre>);
|
||||
static_assert(detail::NamedUnit<struct natural::electronvolt>);
|
||||
static_assert(!detail::NamedUnit<decltype(si::kilogram)>);
|
||||
static_assert(!detail::NamedUnit<decltype((si::kilo<(si::gram)>))>);
|
||||
static_assert(!detail::NamedUnit<decltype(si::metre / si::second)>);
|
||||
static_assert(!detail::NamedUnit<decltype(inverse(si::second))>);
|
||||
static_assert(!detail::NamedUnit<decltype(mag<10> * si::second)>);
|
||||
static_assert(!detail::NamedUnit<decltype(square(si::metre))>);
|
||||
static_assert(!detail::NamedUnit<decltype(pow<2>(si::metre))>);
|
||||
static_assert(detail::NamedUnit<struct si::standard_gravity>);
|
||||
static_assert(!detail::NamedUnit<scaled_unit<mag<10>, struct si::second>>);
|
||||
static_assert(!detail::NamedUnit<derived_unit<struct si::metre, per<struct si::second>>>);
|
||||
static_assert(!detail::NamedUnit<struct one>);
|
||||
static_assert(!detail::NamedUnit<named_unit<"?", kind_of<(isq::length)>>>);
|
||||
static_assert(!detail::NamedUnit<named_unit<"?">>);
|
||||
static_assert(!detail::NamedUnit<named_unit<"?", si::metre / si::second>>);
|
||||
static_assert(!detail::NamedUnit<named_unit<"?", (si::metre), kind_of<(isq::length)>>>);
|
||||
static_assert(!detail::NamedUnit<prefixed_unit<"?", mag<10>, (si::second)>>);
|
||||
static_assert(!detail::NamedUnit<struct isq::dim_length>);
|
||||
static_assert(!detail::NamedUnit<int>);
|
||||
#if MP_UNITS_HOSTED
|
||||
static_assert(!detail::NamedUnit<std::chrono::seconds>);
|
||||
#endif
|
||||
|
||||
// PrefixableUnit
|
||||
static_assert(PrefixableUnit<struct si::metre>);
|
||||
static_assert(PrefixableUnit<struct natural::electronvolt>);
|
||||
|
||||
@@ -1131,12 +1131,12 @@ concept invalid_binary_operations = requires {
|
||||
requires !requires { Origin - Origin; };
|
||||
|
||||
// unit constants
|
||||
requires !requires { QP<si::metre, mean_sea_level, int>(1) + m; };
|
||||
requires !requires { QP<si::metre, mean_sea_level, int>(1) - m; };
|
||||
requires !requires { QP<(si::metre), mean_sea_level, int>(1) + m; };
|
||||
requires !requires { QP<(si::metre), mean_sea_level, int>(1) - m; };
|
||||
requires !requires { Origin + m; };
|
||||
requires !requires { Origin - m; };
|
||||
requires !requires { m + QP<si::metre, mean_sea_level, int>(1); };
|
||||
requires !requires { m - QP<si::metre, mean_sea_level, int>(1); };
|
||||
requires !requires { m + QP<(si::metre), mean_sea_level, int>(1); };
|
||||
requires !requires { m - QP<(si::metre), mean_sea_level, int>(1); };
|
||||
requires !requires { m + Origin; };
|
||||
requires !requires { m - Origin; };
|
||||
};
|
||||
@@ -1717,7 +1717,7 @@ static_assert(value_cast<m>(quantity_point{2 * km}).quantity_from_zero().numeric
|
||||
static_assert(value_cast<km>(quantity_point{2000 * m}).quantity_from_zero().numerical_value_in(km) == 2);
|
||||
static_assert(value_cast<int>(quantity_point{1.23 * m}).quantity_from_zero().numerical_value_in(m) == 1);
|
||||
static_assert(
|
||||
value_cast<km / h>(quantity_point{2000.0 * m / (3600.0 * s)}).quantity_from_zero().numerical_value_in(km / h) == 2);
|
||||
value_cast<(km / h)>(quantity_point{2000.0 * m / (3600.0 * s)}).quantity_from_zero().numerical_value_in(km / h) == 2);
|
||||
// lvalue references in value_cast
|
||||
namespace lvalue_tests {
|
||||
constexpr quantity_point lvalue_qp{2 * km};
|
||||
|
||||
@@ -215,16 +215,16 @@ static_assert(quantity<isq::length[km]>(1500 * m).numerical_value_in(km) == 1.5)
|
||||
|
||||
static_assert(!std::convertible_to<quantity<one>, double>);
|
||||
static_assert(std::constructible_from<double, quantity<one>>);
|
||||
static_assert(!std::convertible_to<quantity<isq::angular_measure[one]>, double>);
|
||||
static_assert(std::constructible_from<double, quantity<isq::angular_measure[one]>>);
|
||||
static_assert(!std::convertible_to<quantity<(isq::angular_measure[one])>, double>);
|
||||
static_assert(std::constructible_from<double, quantity<(isq::angular_measure[one])>>);
|
||||
static_assert(!std::convertible_to<quantity<one>, int>);
|
||||
static_assert(std::constructible_from<int, quantity<one>>);
|
||||
static_assert(!std::convertible_to<quantity<isq::angular_measure[one]>, int>);
|
||||
static_assert(std::constructible_from<int, quantity<isq::angular_measure[one]>>);
|
||||
static_assert(!std::convertible_to<quantity<(isq::angular_measure[one])>, int>);
|
||||
static_assert(std::constructible_from<int, quantity<(isq::angular_measure[one])>>);
|
||||
static_assert(!std::convertible_to<quantity<one, int>, double>);
|
||||
static_assert(std::constructible_from<double, quantity<one, int>>);
|
||||
static_assert(!std::convertible_to<quantity<isq::angular_measure[one], int>, double>);
|
||||
static_assert(std::constructible_from<double, quantity<isq::angular_measure[one], int>>);
|
||||
static_assert(!std::convertible_to<quantity<(isq::angular_measure[one]), int>, double>);
|
||||
static_assert(std::constructible_from<double, quantity<(isq::angular_measure[one]), int>>);
|
||||
|
||||
|
||||
///////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user