diff --git a/libuavcan/include/uavcan/util/map.hpp b/libuavcan/include/uavcan/util/map.hpp index ece759af0e..95b0a1fd71 100644 --- a/libuavcan/include/uavcan/util/map.hpp +++ b/libuavcan/include/uavcan/util/map.hpp @@ -40,18 +40,19 @@ class UAVCAN_EXPORT MapBase : Noncopyable public: struct KVPair { + Value value; // Key and value are swapped because this may allow to reduce padding (depending on types) Key key; - Value value; - KVPair() - : key() - , value() + KVPair() : + value(), + key() { } - KVPair(const Key& arg_key, const Value& arg_value) - : key(arg_key) - , value(arg_value) + KVPair(const Key& arg_key, const Value& arg_value) : + value(arg_value), + key(arg_key) { } + bool match(const Key& rhs) const { return rhs == key; } };