diff --git a/Utilities/std/cmext/memory b/Utilities/std/cmext/memory index 540a3de2e5..50e79dfe25 100644 --- a/Utilities/std/cmext/memory +++ b/Utilities/std/cmext/memory @@ -6,6 +6,8 @@ #ifndef cmext_memory #define cmext_memory +#include + #include namespace cm { @@ -24,7 +26,13 @@ template = 0> T& dynamic_reference_cast(O& item) { - return *(dynamic_cast(item.get())); + auto p = dynamic_cast(item.get()); + + if (p == nullptr) { + throw std::bad_cast(); + } + + return *p; } } // namespace cm