This commit is contained in:
Timur A. Fatkhullin
2025-09-13 23:46:38 +03:00
parent 3ae2d41fc8
commit 92b1a3cfd5
4 changed files with 177 additions and 13 deletions

View File

@@ -822,7 +822,7 @@ concept mcc_pzone_container_c = std::derived_from<T, mcc_pzone_container_interfa
template <typename T>
concept mcc_slewing_model_c = requires(T t) {
requires mcc_error_c<typename T::error_t>;
// requires mcc_error_c<typename T::error_t>;
// a class of slewing process parameters
requires requires(typename T::slewing_params_t pars) {
@@ -830,17 +830,20 @@ concept mcc_slewing_model_c = requires(T t) {
requires std::convertible_to<decltype(pars.slewAndStop), bool>;
};
{ t.slewToTarget() } -> std::same_as<typename T::error_t>;
{ t.stopSlewing() } -> std::same_as<typename T::error_t>;
// { t.slewToTarget() } -> std::same_as<typename T::error_t>;
// { t.stopSlewing() } -> std::same_as<typename T::error_t>;
{ t.slewToTarget() } -> mcc_error_c;
{ t.stopSlewing() } -> mcc_error_c;
{ t.setSlewingParams(std::declval<typename T::slewing_params_t>()) } -> std::same_as<typename T::error_t>;
{ t.setSlewingParams(std::declval<typename T::slewing_params_t>()) } -> mcc_error_c;
// { t.setSlewingParams(std::declval<typename T::slewing_params_t>()) } -> std::same_as<typename T::error_t>;
{ t.getSlewingParams() } -> std::same_as<typename T::slewing_params_t>;
};
template <typename T>
concept mcc_tracking_model_c = requires(T t) {
requires mcc_error_c<typename T::error_t>;
// requires mcc_error_c<typename T::error_t>;
// a class of tracking process parameters
requires requires(typename T::tracking_params_t pars) {
@@ -848,10 +851,13 @@ concept mcc_tracking_model_c = requires(T t) {
requires mcc_angle_c<decltype(pars.trackSpeedY)>;
};
{ t.trackTarget() } -> std::same_as<typename T::error_t>;
{ t.stopTracking() } -> std::same_as<typename T::error_t>;
// { t.trackTarget() } -> std::same_as<typename T::error_t>;
// { t.stopTracking() } -> std::same_as<typename T::error_t>;
{ t.trackTarget() } -> mcc_error_c;
{ t.stopTracking() } -> mcc_error_c;
{ t.setTrackingParams(std::declval<typename T::tracking_params_t>()) } -> std::same_as<typename T::error_t>;
{ t.setTrackingParams(std::declval<typename T::tracking_params_t>()) } -> mcc_error_c;
// { t.setTrackingParams(std::declval<typename T::tracking_params_t>()) } -> std::same_as<typename T::error_t>;
{ t.getTrackingParams() } -> std::same_as<typename T::tracking_params_t>;
};