feat: explicit constructor now can perform an explicit quantity_spec conversion
This commit is contained in:
1 parent
723e3dfa68
commit
9c140f4b3a
4 files changed
+18
-13
No files matched your search
@@ -705,8 +705,8 @@ static_assert(
|
||||
!std::convertible_to<quantity_point<si::kelvin, si::ice_point>, quantity_point<isq::height[m], mean_sea_level>>);
|
||||
|
||||
// non-convertible quantity_specs
|
||||
static_assert(!std::constructible_from<quantity_point<special_height[m], mean_sea_level>,
|
||||
quantity_point<isq::height[m], mean_sea_level>>);
|
||||
static_assert(std::constructible_from<quantity_point<special_height[m], mean_sea_level>,
|
||||
quantity_point<isq::height[m], mean_sea_level>>);
|
||||
static_assert(!std::convertible_to<quantity_point<isq::height[m], mean_sea_level>,
|
||||
quantity_point<special_height[m], mean_sea_level>>);
|
||||
|
||||
@@ -766,8 +766,8 @@ static_assert(std::constructible_from<quantity_point<isq::height[m], mean_sea_le
|
||||
static_assert(std::convertible_to<quantity_point<special_height[m], mean_sea_level>,
|
||||
quantity_point<isq::height[m], mean_sea_level>>);
|
||||
|
||||
static_assert(!std::constructible_from<quantity_point<special_height[m], mean_sea_level>,
|
||||
quantity_point<isq::height[m], mean_sea_level>>);
|
||||
static_assert(std::constructible_from<quantity_point<special_height[m], mean_sea_level>,
|
||||
quantity_point<isq::height[m], mean_sea_level>>);
|
||||
static_assert(!std::convertible_to<quantity_point<isq::height[m], mean_sea_level>,
|
||||
quantity_point<special_height[m], mean_sea_level>>);
|
||||
|
||||
|
||||
@@ -224,6 +224,7 @@ static_assert(std::convertible_to<quantity<si::metre, cartesian_vector<double>>,
|
||||
quantity<isq::position_vector[m], cartesian_vector<double>>>);
|
||||
#endif
|
||||
|
||||
|
||||
// conversion between different quantities not allowed
|
||||
static_assert(!std::constructible_from<quantity<isq::length[m]>, quantity<isq::time[s]>>);
|
||||
static_assert(!std::convertible_to<quantity<isq::time[s]>, quantity<isq::length[m]>>);
|
||||
@@ -263,6 +264,11 @@ static_assert(!std::convertible_to<quantity<rad>, quantity<one>>);
|
||||
static_assert(!std::convertible_to<quantity<isq::angular_measure[one]>, quantity<dimensionless[one]>>);
|
||||
static_assert(!std::convertible_to<quantity<isq::angular_measure[one]>, quantity<one>>);
|
||||
|
||||
// explicit-construction only
|
||||
static_assert(std::constructible_from<quantity<isq::distance[m]>, quantity<isq::length[m]>>);
|
||||
static_assert(!std::convertible_to<quantity<isq::length[m]>, quantity<isq::distance[m]>>);
|
||||
|
||||
|
||||
///////////////////////
|
||||
// obtaining a number
|
||||
///////////////////////
|
||||
|
||||
Reference in new issue
Block a user