diff --git a/libraries/AP_Common/AP_Common.h b/libraries/AP_Common/AP_Common.h index 361d9cf3a7..a642e91e78 100644 --- a/libraries/AP_Common/AP_Common.h +++ b/libraries/AP_Common/AP_Common.h @@ -44,6 +44,18 @@ #define ToRad(x) radians(x) // *pi/180 #define ToDeg(x) degrees(x) // *180/pi +/* Declare and implement const and non-const versions of the array subscript + * operator. The object is treated as an array of type_ values. */ +#define ARRAY_SUBSCRIPT(type_) \ +inline type_ &operator[](size_t i) \ +{ \ + return reinterpret_cast(this)[i]; \ +} \ +inline type_ operator[](size_t i) const \ +{ \ + return reinterpret_cast(this)[i]; \ +} + #define LOCATION_ALT_MAX_M 83000 // maximum altitude (in meters) that can be fit into Location structure's alt field /*