From 4be254b656ff8a845785b93df144deaa3b22c1af Mon Sep 17 00:00:00 2001 From: "devin-ai-integration[bot]" <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 11 Aug 2024 13:53:19 +0000 Subject: [PATCH] TypedVarHost::Has --- omnn/math/VarHost.h | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/omnn/math/VarHost.h b/omnn/math/VarHost.h index 043112cb5..d0fc56f43 100644 --- a/omnn/math/VarHost.h +++ b/omnn/math/VarHost.h @@ -192,17 +192,28 @@ namespace math { return IsArithmeticId; } - bool Has(const ::std::any& id) const override { - IMPLEMENT - return varIds.find(::std::any_cast(id)) != varIds.end(); + bool Has(const std::any& id) const override { + try { + return varIds.find(std::any_cast(id)) != varIds.end(); + } catch (const std::bad_any_cast&) { + // Handle the error, e.g., log it or return a default value + // For now, we'll return false to indicate the id was not found + return false; + } } - - size_t Hash(const ::std::any& id) const override { - return std::hash()(::std::any_cast(id)); + + size_t Hash(const std::any& id) const override { + return std::hash()(std::any_cast(id)); } - - bool CompareIdsLess(const ::std::any& a, const ::std::any& b) const override { - return ::std::any_cast(a) < ::std::any_cast(b); + + bool CompareIdsLess(const std::any& a, const std::any& b) const override { + try { + return std::any_cast(a) < std::any_cast(b); + } catch (const std::bad_any_cast&) { + // Handle the error, e.g., log it or return a default value + // For now, we'll return false to indicate the comparison failed + return false; + } } bool CompareIdsEqual(const ::std::any& a, const ::std::any& b) const override {