...
This commit is contained in:
parent
2faa3f0aca
commit
85e99151a8
@ -294,16 +294,24 @@ concept mcc_slew_params_c = std::movable<T> && requires(T t) {
|
||||
|
||||
/* GENERIC SLEW AND GUIDING MODEL */
|
||||
|
||||
template <typename T, typename TelemetryT>
|
||||
concept mcc_slew_model_c = mcc_mount_telemetry_c<TelemetryT> && requires(T t) {
|
||||
template <typename T>
|
||||
concept mcc_slew_model_c = requires(T t) {
|
||||
requires mcc_error_c<typename T::error_t>;
|
||||
requires mcc_slew_params_c<typename T::slew_params_t>;
|
||||
|
||||
{
|
||||
t.slew(std::declval<typename T::slew_params_t>(), std::declval<TelemetryT&>())
|
||||
} -> std::same_as<typename T::error_t>;
|
||||
{ t.slew(std::declval<typename T::slew_params_t>()) } -> std::same_as<typename T::error_t>;
|
||||
};
|
||||
|
||||
// template <typename T, typename TelemetryT>
|
||||
// concept mcc_slew_model_c = mcc_mount_telemetry_c<TelemetryT> && requires(T t) {
|
||||
// requires mcc_error_c<typename T::error_t>;
|
||||
// requires mcc_slew_params_c<typename T::slew_params_t>;
|
||||
|
||||
// {
|
||||
// t.slew(std::declval<typename T::slew_params_t>(), std::declval<TelemetryT&>())
|
||||
// } -> std::same_as<typename T::error_t>;
|
||||
// };
|
||||
|
||||
template <typename T, typename TelemetryT>
|
||||
concept mcc_guiding_model_c = mcc_mount_telemetry_c<TelemetryT> && requires(T t) {
|
||||
typename T::error_t;
|
||||
@ -397,7 +405,8 @@ concept mcc_mount_controls_c = std::move_constructible<T> && std::movable<T> &&
|
||||
requires mcc_mount_hardware_c<decltype(t.hardware)>;
|
||||
requires mcc_mount_telemetry_c<decltype(t.telemetry)>;
|
||||
|
||||
requires mcc_slew_model_c<decltype(t.slewModel), decltype(t.telemetry)>;
|
||||
requires mcc_slew_model_c<decltype(t.slewModel)>;
|
||||
// requires mcc_slew_model_c<decltype(t.slewModel), decltype(t.telemetry)>;
|
||||
requires mcc_guiding_model_c<decltype(t.guidingModel), decltype(t.telemetry)>;
|
||||
|
||||
// a std::tuple of prohibited zones
|
||||
@ -421,7 +430,8 @@ concept mcc_mount_c = requires(T t) {
|
||||
requires mcc_astrom_engine_c<typename T::astrom_engine_t>;
|
||||
requires mcc_mount_pec_c<typename T::pec_t>;
|
||||
requires mcc_mount_hardware_c<typename T::hardware_t>;
|
||||
requires mcc_slew_model_c<typename T::slew_model_t, typename T::mount_telemetry_t>;
|
||||
// requires mcc_slew_model_c<typename T::slew_model_t, typename T::mount_telemetry_t>;
|
||||
requires mcc_slew_model_c<typename T::slew_model_t>;
|
||||
requires mcc_guiding_model_c<typename T::guiding_model_t, typename T::mount_telemetry_t>;
|
||||
|
||||
requires std::same_as<typename T::slew_params_t, typename T::slew_model_t::slew_params_t>;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user