From 5d2d87946245c6fb7ddd93ae0fc471f44f158e75 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Wed, 1 Jan 2025 20:34:26 -0500 Subject: [PATCH] make asDiscrete a template --- gtsam/hybrid/HybridConditional.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gtsam/hybrid/HybridConditional.h b/gtsam/hybrid/HybridConditional.h index a08b3a6ee..3cf5b80e5 100644 --- a/gtsam/hybrid/HybridConditional.h +++ b/gtsam/hybrid/HybridConditional.h @@ -166,12 +166,13 @@ class GTSAM_EXPORT HybridConditional } /** - * @brief Return conditional as a DiscreteConditional + * @brief Return conditional as a DiscreteConditional or specified type T. * @return nullptr if not a DiscreteConditional * @return DiscreteConditional::shared_ptr */ - DiscreteConditional::shared_ptr asDiscrete() const { - return std::dynamic_pointer_cast(inner_); + template + typename T::shared_ptr asDiscrete() const { + return std::dynamic_pointer_cast(inner_); } /// Get the type-erased pointer to the inner type