diff --git a/core/include/gz/msgs/detail/dynamic_message_cast.hh b/core/include/gz/msgs/detail/dynamic_message_cast.hh index 7ebfa700..6ca8465e 100644 --- a/core/include/gz/msgs/detail/dynamic_message_cast.hh +++ b/core/include/gz/msgs/detail/dynamic_message_cast.hh @@ -37,7 +37,12 @@ template std::unique_ptr dynamic_message_cast(std::unique_ptr &&_baseMsg) { +#if GOOGLE_PROTOBUF_VERSION >= 5028000 + auto converted = std::unique_ptr{ + google::protobuf::DynamicCastMessage(_baseMsg.get())}; +#else auto converted = std::unique_ptr{dynamic_cast(_baseMsg.get())}; +#endif if (converted) { // transfer ownership to a new unique_ptr object by releasing from old one (void) _baseMsg.release();