...
This commit is contained in:
@@ -68,8 +68,8 @@ namespace mcc::traits
|
||||
template <typename T>
|
||||
concept mcc_astrom_engine_c = requires(T t, const T t_const) {
|
||||
requires mcc_error_c<typename T::error_t>;
|
||||
typename T::engine_state_t;
|
||||
requires std::movable<typename T::engine_state_t>;
|
||||
// typename T::engine_state_t;
|
||||
// requires std::movable<typename T::engine_state_t>;
|
||||
|
||||
typename T::coord_t; // type for coordinates representation
|
||||
typename T::time_point_t; // type to represent UTC time point
|
||||
@@ -81,20 +81,21 @@ concept mcc_astrom_engine_c = requires(T t, const T t_const) {
|
||||
typename T::refract_result_t;
|
||||
|
||||
|
||||
{ t.setState(std::declval<typename T::engine_state_t>()) };
|
||||
// { t.setState(std::declval<typename T::engine_state_t>()) };
|
||||
|
||||
{ t_const.getState() } -> std::same_as<typename T::engine_state_t>;
|
||||
// { t_const.getState() } -> std::same_as<typename T::engine_state_t>;
|
||||
|
||||
{ t_const.errorString(std::declval<typename T::error_t>()) } -> mcc_formattable;
|
||||
|
||||
/* coordinates conversional methods */
|
||||
|
||||
// ICRS RA and DEC to observed place: icrs2obs(ra, dec, jd, ra_app, dec_app, ha, az, alt)
|
||||
// ICRS RA and DEC to observed place: icrs2obs(ra, dec, jd, ra_app, dec_app, ha, az, alt, eo)
|
||||
{
|
||||
t.icrs2obs(std::declval<typename T::coord_t>(), std::declval<typename T::coord_t>(),
|
||||
std::declval<typename T::juldate_t>(), std::declval<typename T::coord_t&>(),
|
||||
std::declval<typename T::coord_t&>(), std::declval<typename T::coord_t&>(),
|
||||
std::declval<typename T::coord_t&>(), std::declval<typename T::coord_t&>())
|
||||
std::declval<typename T::coord_t&>(), std::declval<typename T::coord_t&>(),
|
||||
std::declval<typename T::eo_t&>())
|
||||
} -> std::same_as<typename T::error_t>;
|
||||
|
||||
// compute hour angle and declination from azimuth and altitude: hadec2azalt(ha, dec, az, alt)
|
||||
@@ -185,6 +186,7 @@ concept mcc_mount_pec_c = requires(T t, const T t_const) {
|
||||
requires std::same_as<decltype(T::mountType), const MccMountType>;
|
||||
[]() {
|
||||
static constexpr MccMountType val = T::mountType;
|
||||
return val;
|
||||
}(); // to ensure 'mountType' can be used in compile-time context
|
||||
};
|
||||
|
||||
@@ -307,6 +309,7 @@ concept mcc_prohibited_zone_c =
|
||||
requires std::same_as<decltype(T::zoneCoordPairKind), const MccCoordPairKind>;
|
||||
[]() {
|
||||
constexpr MccCoordPairKind val = T::zoneCoordPairKind;
|
||||
return val;
|
||||
}(); // to ensure that 'zoneCoordPairKind' can be used at compile-time context
|
||||
};
|
||||
|
||||
@@ -350,7 +353,7 @@ concept mcc_prohibited_zone_c =
|
||||
|
||||
|
||||
template <typename T>
|
||||
concept mcc_mount_config_c = requires(T t) {
|
||||
concept mcc_mount_config_c = std::movable<T> && requires(T t) {
|
||||
// { t.astromEngine() } -> mcc_astrom_engine_c;
|
||||
// { t.pec() } -> mcc_mount_pec_c;
|
||||
// { t.hardware() } -> mcc_mount_hardware_c;
|
||||
|
||||
Reference in New Issue
Block a user