Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifdef _DEBUG
Toshihiro Shimizu 890ddd
#define _STLP_DEBUG 1
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
#include "ext/Types.h"
Toshihiro Shimizu 890ddd
e280ae
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
Toshihiro Shimizu 890ddd
// to avoid annoying warning
Toshihiro Shimizu 890ddd
#pragma warning(push)
Toshihiro Shimizu 890ddd
#pragma warning(disable : 4290)
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
ToonzExt::OddInt::OddInt(int v) : val_(v) {}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
ToonzExt::OddInt::operator int() const
Shinya Kitaoka 120a6e
// throw(std::range_error)
Toshihiro Shimizu 890ddd
{
Shinya Kitaoka 120a6e
  if (!isOdd()) throw std::range_error("Value is Even!!!");
Shinya Kitaoka 120a6e
  return val_;
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
ToonzExt::OddInt::operator int()
Shinya Kitaoka 120a6e
// throw(std::range_error)
Toshihiro Shimizu 890ddd
{
Shinya Kitaoka 120a6e
  if (!isOdd()) throw std::range_error("Value is Even!!!");
Shinya Kitaoka 120a6e
  return val_;
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
bool ToonzExt::OddInt::isOdd() const { return (bool)(val_ & 1); }
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
// -4 -2 0 2 4..
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
ToonzExt::EvenInt::EvenInt(int v) : val_(v) {}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
ToonzExt::EvenInt::operator int() const
Shinya Kitaoka 120a6e
// throw(std::range_error)
Toshihiro Shimizu 890ddd
{
Shinya Kitaoka 120a6e
  if (!isEven()) throw std::range_error("Value is Odd!!!");
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  return val_;
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
ToonzExt::EvenInt::operator int()
Shinya Kitaoka 120a6e
// throw(std::range_error)
Toshihiro Shimizu 890ddd
{
Shinya Kitaoka 120a6e
  if (!isEven()) throw std::range_error("Value is Odd!!!");
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  return val_;
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
bool ToonzExt::EvenInt::isEven() const { return (bool)(!(val_ & 1)); }
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
e280ae
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
Toshihiro Shimizu 890ddd
#pragma warning(pop)
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
//  End Of File
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------