...
This commit is contained in:
@@ -301,6 +301,17 @@ concept mcc_prohibited_zone_c =
|
||||
mcc_mount_telemetry_data_c<TelemetryDataT> && std::movable<T> && requires(T t, const T t_const) {
|
||||
typename T::coord_t;
|
||||
typename T::time_point_t;
|
||||
requires mcc_time_duration_c<typename T::duration_t>;
|
||||
|
||||
// static constexpr member to represent inifite duration
|
||||
requires requires {
|
||||
requires std::same_as<decltype(T::infiniteDuration), typename T::duration_t>;
|
||||
[]() {
|
||||
constexpr auto val = T::infiniteDuration;
|
||||
return val;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
// the type 'T' must define a static constexpr member of type MccCoordPairKind
|
||||
// to declarate type of coordinate pair used to describe the zone.
|
||||
@@ -343,8 +354,17 @@ concept mcc_prohibited_zone_c =
|
||||
// 'const mcc_mount_telemetry_data_c&' (const lvalue reference)
|
||||
|
||||
{ t.inZone(std::declval<const TelemetryDataT&>()) } -> std::convertible_to<bool>;
|
||||
{ t.timeTo(std::declval<const TelemetryDataT&>()) } -> mcc_time_duration_c;
|
||||
{ t.timeFrom(std::declval<const TelemetryDataT&>()) } -> mcc_time_duration_c;
|
||||
|
||||
// a time duration to reach the zone.
|
||||
// special values the method must return:
|
||||
// 'infiniteDuration' if the given sky point never reaches the zone
|
||||
// 0 (zero duration) if the given sky point is already in the zone or it never exits from the zone
|
||||
{ t.timeTo(std::declval<const TelemetryDataT&>()) } -> std::same_as<typename T::duration_t>;
|
||||
|
||||
// a time duration to exit from the zone.
|
||||
// special values the method must return:
|
||||
// 0 (zero duration) if the given sky point already exited from the zone or it never reaches the zone
|
||||
{ t.timeFrom(std::declval<const TelemetryDataT&>()) } -> std::same_as<typename T::duration_t>;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user