diff --git a/Foundation/include/Poco/DynamicAny.h b/Foundation/include/Poco/DynamicAny.h index e8fab2f34..e4b824932 100644 --- a/Foundation/include/Poco/DynamicAny.h +++ b/Foundation/include/Poco/DynamicAny.h @@ -168,13 +168,15 @@ public: /// the stored value, otherwise a BadCastException /// is thrown. { - DynamicAnyHolderImpl* pHolder = dynamic_cast*>(_pHolder); - if (pHolder) - return pHolder->value(); + if (_pHolder && _pHolder->type() == typeid(T)) + { + DynamicAnyHolderImpl* pHolder = static_cast*>(_pHolder); + return pHolder->value(); + } else - throw BadCastException(); - } - + throw BadCastException(); + } + template DynamicAny& operator = (const T& other) /// Assignment operator for assigning POD to DynamicAny