[Bug c++/17344] spurious error

bangerth at dealii dot org gcc-bugzilla@gcc.gnu.org
Thu Sep 16 15:44:00 GMT 2004


------- 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



More information about the Gcc-bugs mailing list