DynamicAny::extract performance optimization

This commit is contained in:
Aleksandar Fabijanic 2008-05-13 01:41:27 +00:00
parent 45d601089b
commit e933e93b50

View File

@ -168,13 +168,15 @@ public:
/// the stored value, otherwise a BadCastException
/// is thrown.
{
DynamicAnyHolderImpl<T>* pHolder = dynamic_cast<DynamicAnyHolderImpl<T>*>(_pHolder);
if (pHolder)
return pHolder->value();
if (_pHolder && _pHolder->type() == typeid(T))
{
DynamicAnyHolderImpl<T>* pHolder = static_cast<DynamicAnyHolderImpl<T>*>(_pHolder);
return pHolder->value();
}
else
throw BadCastException();
}
throw BadCastException();
}
template <typename T>
DynamicAny& operator = (const T& other)
/// Assignment operator for assigning POD to DynamicAny