[Bug c++/13548] SFINAE fails to eliminate overload

pinskia at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Jan 2 22:57:00 GMT 2004


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-01-02 22:57 -------
How is enable_if_interoperable<boost::indirect_iterator<..>, boost::reverse_iterator<..>, bool> an 
invalid type, there is only a definition of enable_if_interoperable:
    template <class Facade1, class Facade2, class Return>
    struct enable_if_interoperable
    {
        typedef Return type;
    };


template < class Derived1, class V1, class TC1, class R1, class D1 , class Derived2, class V2, class 
TC2, class R2, class D2 >

typename detail::enable_if_interoperable< Derived1, Derived2, bool >::type 
operator ==
( 
iterator_facade<Derived1, V1, TC1, R1, D1> const& lhs , 
iterator_facade<Derived2, V2, TC2, R2, D2> const& rhs) 

Derived1 = boost::indirect_iterator<int**, boost::use_default, boost::use_default, boost::
use_default, boost::use_default>

Derived2 = boost::reverse_iterator<int**>

V1 = int
V2 = int *
TC1 = boost::random_access_traversal_tag
TC2 = boost::random_access_traversal_tag
R1 = int&
R2 = int*&
D1 = int
D2 = int

-- 


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



More information about the Gcc-bugs mailing list