https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71387

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> ---
class EPoint {
 public:
  inline EPoint();
  inline EPoint( const EPoint &p );
};
class EPointIteratorBase {
 public:
  explicit EPointIteratorBase( unsigned long size )
      : m_index(0), m_sourceIsPrimitive(true)
    { }
  EPoint m_actPoint;
  unsigned long m_index;
  int m_sourceIsPrimitive;
};
class EProperties { };
class EPrimitive {
 protected:
  explicit EPrimitive( const EProperties* inProps )     { }
};
class ERectangleBase : public EPrimitive
{
 public:
  ERectangleBase( const EProperties* inProps ) : EPrimitive( inProps ) { }
  virtual EPoint getLowerRight() const = 0;
  virtual EPoint getLowerLeft() const = 0;
};
class EPointIteratorRectangleBase : public EPointIteratorBase
{
  inline void _setPoint();
  EPointIteratorRectangleBase( const ERectangleBase *rectBase );
  const ERectangleBase *m_rectBase;
};
inline void EPointIteratorRectangleBase::_setPoint() {
  if( m_index == 0 )
   m_actPoint = m_rectBase->getLowerLeft();
  else
    m_actPoint = m_rectBase->getLowerRight();
}
EPointIteratorRectangleBase::EPointIteratorRectangleBase( const ERectangleBase
*rectBase )
    : EPointIteratorBase( 4 )
{
  _setPoint();
}

Reply via email to