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++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults


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


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