This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/17344] spurious error


------- Additional Comments From bangerth at dealii dot org  2004-09-16 15:44 -------
About the unrelatedness of some text: when I replace the definition 
of class pile and everything below by this code 
----------------- 
struct pile: public equalityMixin<pile> 
{ 
    template<template<typename>class raw> 
    pile(const raw<void>& r) : base(pileBase::init(r)) {} 
 
    pile(const pile& p) : base(p.base) {} 
    pileBase& base; 
 }; 
 
 
void foo() { 
 bitset<int, 1, 2> bed; 
 bed != bed; 
 } 
---------------------- 
then I still see the problem. This comes from the fact that the operator 
!= you want to call is injected by the class equalityMixin, which is 
instantiated by the declaration of class pile. If you don't declare this 
class, then we have one less overload. As to why we get the error 
I don't know yet. 
 
W. 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17344


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]