www.digitalmars.com         C & C++   DMDScript  

c++ - [Bug report] ambiguous partial specialization

The compiler (__DMC__ == 0x840) is not able to handle the following
well-formed program:

[ambiguous_partial_spec.cpp]

template< typename T > struct thing {};

template< template< typename U > class F, typename T >
struct thing< F<T> >
{
};

template< typename T > struct f {};
template< typename T > struct thing< f<T> > {};

int main()
{
    typedef thing< f<int> > t;
}


    typedef thing< f<int> >
                          ^
C:\home\depot\bugs\dmc8.4\ambiguous_partial_spec.cpp(14) : Error: ambiguous
match of class template partial specialization 'thing'
--- errorlevel 1
<

--
Aleksey Gurtovoy
MetaCommunications Engineering
Aug 12 2004