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 /// the stored value, otherwise a BadCastException
/// is thrown. /// is thrown.
{ {
DynamicAnyHolderImpl<T>* pHolder = dynamic_cast<DynamicAnyHolderImpl<T>*>(_pHolder); if (_pHolder && _pHolder->type() == typeid(T))
if (pHolder) {
return pHolder->value(); DynamicAnyHolderImpl<T>* pHolder = static_cast<DynamicAnyHolderImpl<T>*>(_pHolder);
return pHolder->value();
}
else else
throw BadCastException(); throw BadCastException();
} }
template <typename T> template <typename T>
DynamicAny& operator = (const T& other) DynamicAny& operator = (const T& other)
/// Assignment operator for assigning POD to DynamicAny /// Assignment operator for assigning POD to DynamicAny