This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
- From: "gdr at integrable-solutions dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 25 Jan 2004 18:25:18 -0000
- Subject: [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
- References: <20030217232600.9737.gccbugs@contacts.eelis.net>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From gdr at integrable-solutions dot net 2004-01-25 18:25 -------
Subject: Re: [DR150] Partial template specialisation selection failure involving template parameter defaults
"giovannibajo at libero dot it" <gcc-bugzilla@gcc.gnu.org> writes:
| 1) As explained in Bug 9737, our current behaviour allows to say:
| template <template <class> class TT> class A;
| A<std::set> a;
|
| Becuase the type system allows this kind of match.
Just to clear any misunderstanding. The /C++/ type system does not
allow that match.
[...]
| > Also, in the case
| > of Bug 13809, the compiler diagnostic messages are incorrect becuase
| > it reports invalid alternatives as ambiguities (AFAICT).
|
| I can't understand where you read that GCC's std::set uses 4 template
| parameters. There are only 3 parameters mandated by the C++ standard, and the
| implemantation we have in v3 does implement it as 3-parameter template
| (libstdc++-v3/include/bits/stl_set.h). So I can't see how the 4-parameter
| conversion function would have had to be a possible match.
Yup.
-- Gaby
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9737