Моя цель — сравнить некоторые поля в сообщениях protobuf. Я пробовал MessageDifferencer, но я не хочу использовать отражение. Я использую protobuf 3.4.0.
Временные переменные хранятся в известных типах protobuf, таких как google.protobuf.Duration и google.protobuf.Timestamp.
Я хотел бы использовать макрос, который принимает два объекта и имя поля:
CHECK_GPS_TIME ( expectedGps, storedGps, gps_time );
Я ожидаю следующий результат:
CHECK ( expectedGps.gps_time().seconds() == storedGps.gps_time().seconds() );
У меня уже есть макрос для простых типов:
#define CHECK_GPS_FIELD(expected, stored, field) CHECK( expected.field() == stored.field() );
Задача ещё не решена.
Других решений пока нет …