++ and -- operators for DynamicAny

This commit is contained in:
Aleksandar Fabijanic
2007-09-06 11:16:27 +00:00
parent a86dc7a393
commit 009db61570
3 changed files with 76 additions and 0 deletions

View File

@@ -209,6 +209,43 @@ DynamicAny& DynamicAny::operator /= (const DynamicAny& other)
}
DynamicAny& DynamicAny::operator ++ ()
{
if (!isInteger())
throw InvalidArgumentException("Invalid operation for this data type.");
return *this = *this + 1;
}
DynamicAny DynamicAny::operator ++ (int)
{
if (!isInteger())
throw InvalidArgumentException("Invalid operation for this data type.");
DynamicAny tmp(*this);
*this += 1;
return tmp;
}
DynamicAny& DynamicAny::operator -- ()
{
if (!isInteger())
throw InvalidArgumentException("Invalid operation for this data type.");
return *this = *this - 1;
}
DynamicAny DynamicAny::operator -- (int)
{
if (!isInteger())
throw InvalidArgumentException("Invalid operation for this data type.");
DynamicAny tmp(*this);
*this -= 1;
return tmp;
}
DynamicAny& DynamicAny::operator [] (std::vector<DynamicAny>::size_type n)
{
DynamicAnyHolderImpl<std::vector<DynamicAny> >* pHolder = dynamic_cast<DynamicAnyHolderImpl<std::vector<DynamicAny> > *>(_pHolder);