diff --git a/tf2/include/tf2/buffer_core_interface.h b/tf2/include/tf2/buffer_core_interface.h index ed6632083..989f60042 100644 --- a/tf2/include/tf2/buffer_core_interface.h +++ b/tf2/include/tf2/buffer_core_interface.h @@ -50,6 +50,10 @@ namespace tf2 class BufferCoreInterface { public: + TF2_PUBLIC + virtual + ~BufferCoreInterface() = default; + /** * \brief Clear internal state data. */ diff --git a/tf2/include/tf2/time_cache.h b/tf2/include/tf2/time_cache.h index f092e51fa..dc03c5a65 100644 --- a/tf2/include/tf2/time_cache.h +++ b/tf2/include/tf2/time_cache.h @@ -48,6 +48,9 @@ typedef std::pair P_TimeAndFrameID; class TimeCacheInterface { public: + TF2_PUBLIC + virtual ~TimeCacheInterface() = default; + /** \brief Access data from the cache */ TF2_PUBLIC virtual bool getData(TimePoint time, TransformStorage & data_out, std::string* error_str = 0)=0; //returns false if data unavailable (should be thrown as lookup exception diff --git a/tf2_ros/include/tf2_ros/async_buffer_interface.h b/tf2_ros/include/tf2_ros/async_buffer_interface.h index d5de12609..19ef7f632 100644 --- a/tf2_ros/include/tf2_ros/async_buffer_interface.h +++ b/tf2_ros/include/tf2_ros/async_buffer_interface.h @@ -51,6 +51,10 @@ using TransformReadyCallback = std::function; using UniquePtr = std::unique_ptr; + TF2_ROS_PUBLIC + virtual + ~CreateTimerInterface() = default; + /** * \brief Create a new timer. *