問題の状況はこんな感じ

struct Rasterizer
{
      struct Group
      {
            virtulal bool Shell( Rasterizer &device ) = 0;
      };
      virtulal bool Shell( const Group&, const Algebra::Matrix& ) = 0;
      virtulal bool Shell( const Shape::Path& ) = 0;
      virtulal bool Shell( const Shape::Image& ) = 0;
      virtulal bool Shell( const Shape::Text& ) = 0;
};