Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.old-deja/g++.jason/pmf9.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// { dg-do assemble } // PRMS id: g++/13340 class rectangle { public: rectangle(); int overlaps() const; }; class region { friend class region_impl; public: region(); typedef int (region::* region_func)() const; }; class region_impl { friend class region; private: rectangle content, mbb; region_impl *link_p; region_impl(const rectangle &content); public: int iterate(region *region_p, region::region_func what, const rectangle &clip_rect) const; int iterate(region *region_p, region::region_func what, const region_impl &clip_rgn) const; }; int region_impl::iterate (region *region_p, region::region_func what, const rectangle &clip_rect) const { for (const region_impl *p = this; p != 0 && p->mbb.overlaps(); p = p->link_p) if (p->content.overlaps()) if (!(region_p->*what)()) return 0; return 1; } int region_impl::iterate (region *region_p, region::region_func what, const region_impl &clip_rgn) const { for (const region_impl *p = this; p != 0 && p->mbb.overlaps(); p = p->link_p) if (!clip_rgn.iterate(region_p, what, p->content)) return 0; return 1; }