public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/21835] New: compilation of CRTP fails if the ABC is after template @ 2005-05-31 8:42 maierkom at rcs dot ei dot tum dot de 2005-05-31 13:23 ` [Bug c++/21835] " pinskia at gcc dot gnu dot org ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: maierkom at rcs dot ei dot tum dot de @ 2005-05-31 8:42 UTC (permalink / raw) To: gcc-bugs the compilation of a curious recuring template fails if the base class for the instantiation of the curious recuring template pattern (CRTP) is defined after the template but before its instantiation. The following code demonstrates the problem. If uncommenting the outcommented section and commenting out the latter appearance of the same code, it compiles successfully. #include <iostream> using namespace std; /* struct Client { void visit(const class A &a) { cout << "Client::visit(const A &)" << endl; } }; struct MYABC { virtual void runVisitor(class Client &) const = 0; }; */ template <class Derived, class ABC> struct Door : public ABC { Door() : ABC() { } void runVisitor(class Client &) const; }; template <class Derived, class ABC> void Door<Derived,ABC>::runVisitor(class Client &c) const { c.visit(static_cast<const Derived &>(*this)); } struct Client { void visit(const class A &a) { cout << "Client::visit(const A &)" << endl; } }; struct MYABC { virtual void runVisitor(class Client &) const = 0; }; struct A : public Door<A,MYABC> { }; -- Summary: compilation of CRTP fails if the ABC is after template Product: gcc Version: 3.4.3 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: maierkom at rcs dot ei dot tum dot de CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: sparc-sun-solaris2.8 GCC host triplet: sparc-sun-solaris2.8 GCC target triplet: sparc-sun-solaris2.8 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21835 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/21835] compilation of CRTP fails if the ABC is after template 2005-05-31 8:42 [Bug c++/21835] New: compilation of CRTP fails if the ABC is after template maierkom at rcs dot ei dot tum dot de @ 2005-05-31 13:23 ` pinskia at gcc dot gnu dot org 2005-05-31 17:11 ` pinskia at gcc dot gnu dot org 2005-06-19 14:32 ` pinskia at gcc dot gnu dot org 2 siblings, 0 replies; 4+ messages in thread From: pinskia at gcc dot gnu dot org @ 2005-05-31 13:23 UTC (permalink / raw) To: gcc-bugs -- What |Removed |Added ---------------------------------------------------------------------------- Keywords| |rejects-valid Known to fail| |3.4.0 3.3.3 3.0.4 2.95.3 Known to work| |4.1.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21835 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/21835] compilation of CRTP fails if the ABC is after template 2005-05-31 8:42 [Bug c++/21835] New: compilation of CRTP fails if the ABC is after template maierkom at rcs dot ei dot tum dot de 2005-05-31 13:23 ` [Bug c++/21835] " pinskia at gcc dot gnu dot org @ 2005-05-31 17:11 ` pinskia at gcc dot gnu dot org 2005-06-19 14:32 ` pinskia at gcc dot gnu dot org 2 siblings, 0 replies; 4+ messages in thread From: pinskia at gcc dot gnu dot org @ 2005-05-31 17:11 UTC (permalink / raw) To: gcc-bugs -- What |Removed |Added ---------------------------------------------------------------------------- GCC build triplet|sparc-sun-solaris2.8 | GCC host triplet|sparc-sun-solaris2.8 | GCC target triplet|sparc-sun-solaris2.8 | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21835 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/21835] compilation of CRTP fails if the ABC is after template 2005-05-31 8:42 [Bug c++/21835] New: compilation of CRTP fails if the ABC is after template maierkom at rcs dot ei dot tum dot de 2005-05-31 13:23 ` [Bug c++/21835] " pinskia at gcc dot gnu dot org 2005-05-31 17:11 ` pinskia at gcc dot gnu dot org @ 2005-06-19 14:32 ` pinskia at gcc dot gnu dot org 2 siblings, 0 replies; 4+ messages in thread From: pinskia at gcc dot gnu dot org @ 2005-06-19 14:32 UTC (permalink / raw) To: gcc-bugs ------- Additional Comments From pinskia at gcc dot gnu dot org 2005-06-19 14:32 ------- Fixed on the mainline (for 4.1.0), since this is not a regression, I am closing as fixed. -- What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Known to fail|3.4.0 3.3.3 3.0.4 2.95.3 |3.4.0 3.3.3 3.0.4 2.95.3 | |4.0.0 Resolution| |FIXED Target Milestone|--- |4.1.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21835 ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2005-06-19 14:32 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2005-05-31 8:42 [Bug c++/21835] New: compilation of CRTP fails if the ABC is after template maierkom at rcs dot ei dot tum dot de 2005-05-31 13:23 ` [Bug c++/21835] " pinskia at gcc dot gnu dot org 2005-05-31 17:11 ` pinskia at gcc dot gnu dot org 2005-06-19 14:32 ` pinskia at gcc dot gnu dot org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).