DynamicAny improvements (now holds any type out-of-the-box), some refactoring and documentation improvements

This commit is contained in:
Aleksandar Fabijanic
2008-06-30 00:26:54 +00:00
parent e0bb9c162b
commit b1f895eed8
14 changed files with 331 additions and 776 deletions

View File

@@ -247,21 +247,14 @@ DynamicAny DynamicAny::operator -- (int)
DynamicAny& DynamicAny::operator [] (const std::string& name)
{
DynamicAnyHolderImpl<DynamicStruct>* pHolder = dynamic_cast<DynamicAnyHolderImpl<DynamicStruct> *>(_pHolder);
if (pHolder)
return pHolder->operator[](name);
else
throw BadCastException();
return holderImpl<DynamicStruct, InvalidAccessException>("Not an array.")->operator[](name);
}
const DynamicAny& DynamicAny::operator [] (const std::string& name) const
{
const DynamicAnyHolderImpl<DynamicStruct>* pHolder = dynamic_cast<const DynamicAnyHolderImpl<DynamicStruct>* >(_pHolder);
if (pHolder)
return pHolder->operator[](name);
else
throw BadCastException();
return const_cast<const DynamicAny&>(holderImpl<DynamicStruct,
InvalidAccessException>("Not an array.")->operator[](name));
}