refactor: 💥 is_XXX customization points for representation types removed

This commit is contained in:
Mateusz Pusz committed 2024-11-26 14:48:08 +01:00
1 parent 083ef6adb1
commit 465f88d500
21 files changed
+151 -205

No files matched your search

+5 -2
View File
@@ -278,13 +278,16 @@ static_assert(!Representation<std::chrono::seconds>);
// RepresentationOf
static_assert(RepresentationOf<int, quantity_character::scalar>);
static_assert(!RepresentationOf<int, quantity_character::complex>);
static_assert(!RepresentationOf<int, quantity_character::vector>);
static_assert(RepresentationOf<int, quantity_character::vector>);
static_assert(!RepresentationOf<int, quantity_character::tensor>);
static_assert(RepresentationOf<double, quantity_character::scalar>);
static_assert(!RepresentationOf<double, quantity_character::complex>);
static_assert(!RepresentationOf<double, quantity_character::vector>);
static_assert(RepresentationOf<double, quantity_character::vector>);
static_assert(!RepresentationOf<double, quantity_character::tensor>);
static_assert(!RepresentationOf<bool, quantity_character::scalar>);
static_assert(!RepresentationOf<bool, quantity_character::complex>);
static_assert(!RepresentationOf<bool, quantity_character::vector>);
static_assert(!RepresentationOf<bool, quantity_character::tensor>);
static_assert(!RepresentationOf<std::optional<int>, quantity_character::scalar>);
#if MP_UNITS_HOSTED
static_assert(RepresentationOf<std::complex<double>, quantity_character::complex>);
-3
View File
@@ -60,9 +60,6 @@ public:
} // namespace
template<typename T>
constexpr bool mp_units::is_scalar<min_impl<T>> = true;
template<typename T, typename U>
struct std::common_type<min_impl<T>, min_impl<U>> : std::type_identity<min_impl<std::common_type_t<T, U>>> {};
template<typename T, typename U>
-4
View File
@@ -24,10 +24,6 @@
#include <mp-units/systems/isq/mechanics.h>
#include <mp-units/systems/si.h>
template<class T>
requires mp_units::is_scalar<T>
constexpr bool mp_units::is_vector<T> = true;
namespace {
using namespace mp_units;
-4
View File
@@ -26,10 +26,6 @@
#include <mp-units/systems/si/constants.h>
#include <mp-units/systems/si/units.h>
template<class T>
requires mp_units::is_scalar<T>
constexpr bool mp_units::is_vector<T> = true;
namespace {
using namespace mp_units;
-4
View File
@@ -22,10 +22,6 @@
#include <mp-units/systems/natural.h>
template<class T>
requires mp_units::is_scalar<T>
constexpr bool mp_units::is_vector<T> = true;
namespace {
using namespace mp_units;
+3 -4
View File
@@ -47,9 +47,6 @@ import std;
#endif
#endif
template<>
constexpr bool mp_units::is_vector<int> = true;
namespace {
using namespace mp_units;
@@ -74,8 +71,10 @@ concept invalid_types = requires {
requires !requires { typename Q<isq::length, double>; }; // quantity_spec instead of reference
requires !requires { typename Q<isq::length[m], bool>; }; // bool is not a valid representation type
requires !requires { typename Q<isq::length[m], quantity<isq::length[m]>>; }; // quantity used as Rep
requires !requires { typename Q<isq::position_vector[si::metre], double>; }; // vector representation expected
#if MP_UNITS_HOSTED
requires !requires {
typename Q<isq::position_vector[si::metre], std::complex<double>>;
}; // vector representation expected
requires !requires {
typename Q<isq::length[si::metre], cartesian_vector<double>>;
}; // scalar representation expected