public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/9737] [DR184] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
@ 2003-07-10 13:01 ` lerdsuwa at gcc dot gnu dot org
  2003-10-30 14:10 ` lerdsuwa at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: lerdsuwa at gcc dot gnu dot org @ 2003-07-10 13:01 UTC (permalink / raw)
  To: gcc-bugs

PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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



------- Additional Comments From lerdsuwa at gcc dot gnu dot org  2003-07-10 13:00 -------
*** Bug 11486 has been marked as a duplicate of this bug. ***


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR184] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
  2003-07-10 13:01 ` [Bug c++/9737] [DR184] Partial template specialisation selection failure involving template parameter defaults lerdsuwa at gcc dot gnu dot org
@ 2003-10-30 14:10 ` lerdsuwa at gcc dot gnu dot org
  2004-01-25 17:02 ` giovannibajo at libero dot it
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: lerdsuwa at gcc dot gnu dot org @ 2003-10-30 14:10 UTC (permalink / raw)
  To: gcc-bugs

PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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


lerdsuwa at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |peter at sanbolic dot com


------- Additional Comments From lerdsuwa at gcc dot gnu dot org  2003-10-30 14:10 -------
*** Bug 12838 has been marked as a duplicate of this bug. ***


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR184] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
  2003-07-10 13:01 ` [Bug c++/9737] [DR184] Partial template specialisation selection failure involving template parameter defaults lerdsuwa at gcc dot gnu dot org
  2003-10-30 14:10 ` lerdsuwa at gcc dot gnu dot org
@ 2004-01-25 17:02 ` giovannibajo at libero dot it
  2004-01-25 17:12 ` [Bug c++/9737] [DR150] " giovannibajo at libero dot it
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: giovannibajo at libero dot it @ 2004-01-25 17:02 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From giovannibajo at libero dot it  2004-01-25 17:02 -------
*** Bug 13809 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gianni at mariani dot ws


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
                   ` (2 preceding siblings ...)
  2004-01-25 17:02 ` giovannibajo at libero dot it
@ 2004-01-25 17:12 ` giovannibajo at libero dot it
  2004-01-25 17:24 ` gdr at integrable-solutions dot net
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: giovannibajo at libero dot it @ 2004-01-25 17:12 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From giovannibajo at libero dot it  2004-01-25 17:11 -------
Jason, you proposed to keep this PR suspended because the DR was closed 
as "extension", so it might serve as a prototype implementation for the 
extension.

Would you agree in having Kriang's patch in, modified in a way that it 
basically allows it as a GCC extension (no new switch), so that the strict 
C++/98 behaviour is enforced in pedantic mode? We can later deprecate and 
remove the extension if it's not picked up by the Evolution Group (for 
instance, because of the template alias thingie).

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jason at redhat dot com,
                   |                            |giovannibajo at libero dot
                   |                            |it
            Summary|[DR184] Partial template    |[DR150] Partial template
                   |specialisation selection    |specialisation selection
                   |failure involving template  |failure involving template
                   |parameter defaults          |parameter defaults


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
                   ` (3 preceding siblings ...)
  2004-01-25 17:12 ` [Bug c++/9737] [DR150] " giovannibajo at libero dot it
@ 2004-01-25 17:24 ` gdr at integrable-solutions dot net
  2004-01-25 17:40 ` gianni at mariani dot ws
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: gdr at integrable-solutions dot net @ 2004-01-25 17:24 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From gdr at integrable-solutions dot net  2004-01-25 17:24 -------
Subject: Re:  [DR150] Partial template specialisation selection failure involving template parameter defaults

"giovannibajo at libero dot it" <gcc-bugzilla@gcc.gnu.org> writes:

| Jason, you proposed to keep this PR suspended because the DR was closed 
| as "extension", so it might serve as a prototype implementation for the 
| extension.
| 
| Would you agree in having Kriang's patch in, modified in a way that it 
| basically allows it as a GCC extension (no new switch), so that the strict 
| C++/98 behaviour is enforced in pedantic mode? We can later deprecate and 
| remove the extension if it's not picked up by the Evolution Group (for 
| instance, because of the template alias thingie).

I believe the current approach to this issue is to maintain the analogy
with function function parameters (as pointed out in the Rationale of
DR150); however,  as you point out, use of template alias circumvents
the need for loosening the type system.

-- Gaby


-- 


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
                   ` (4 preceding siblings ...)
  2004-01-25 17:24 ` gdr at integrable-solutions dot net
@ 2004-01-25 17:40 ` gianni at mariani dot ws
  2004-01-25 18:13 ` giovannibajo at libero dot it
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: gianni at mariani dot ws @ 2004-01-25 17:40 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From gianni at mariani dot ws  2004-01-25 17:40 -------
Giovanni, I'm trying to understand how Bug 13809 is related to this one.  This
(Bug 9737) describes partial specializations while Bug 13809 describes a
template member function resolution in which case (as far as I can tell) the
standard is clear which template member function should resolve.  This (Bug
9737) describes a template type resolution issue which (IMHO) is significantly
different. Are the resolution mechanisms different between bugs 13809 and 9737 ?
 Also, in the case of Bug 13809, the compiler diagnostic messages are incorrect
becuase it reports invalid alternatives as ambiguities (AFAICT).



-- 


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
                   ` (5 preceding siblings ...)
  2004-01-25 17:40 ` gianni at mariani dot ws
@ 2004-01-25 18:13 ` giovannibajo at libero dot it
  2004-01-25 18:25 ` gdr at integrable-solutions dot net
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: giovannibajo at libero dot it @ 2004-01-25 18:13 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From giovannibajo at libero dot it  2004-01-25 18:13 -------
Subject: Re:  [DR150] Partial template specialisation selection failure involving template parameter defaults

> Giovanni, I'm trying to understand how Bug 13809 is
> related to this one.  This (Bug 9737) describes partial
> specializations while Bug 13809 describes a
> template member function resolution in which case (as far as I can
> tell) the standard is clear which template member function should
> resolve.  This (Bug 9737) describes a template type resolution issue
> which (IMHO) is significantly different. Are the resolution
>  mechanisms different between bugs 13809 and 9737 ?

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. I would like to make this an
official GCC extension, that can be optionally disabled in pedantic mode (or,
viceversa, allowed with -fpermissive).

2) For Bug 13809, the overload call is ambigous because partial ordering cannot
tell which overload function is the most specialized. Bug 9373 is about
ambigous match of a partial specialization, which uses exactly the same partial
ordering algorithm. This means that the code that selects the partial
specialization used for the instantiation in 9373 and the code that tries to
resolve the overload among the template covnersion functions is exactly the
same. Notice that this mandated by [temp.class.spec.match]/1, bullet 2: "If
more than one matching specialization is found, the partial order rules
(14.5.4.2) are used to determine whether one of the specializations is more
specialized than the others."

3) Given #1 and #2, you understand that there is indeed an ambiguity for GCC in
your testcase in Bug 13809. In fact, both the 2-parameter and 3-parameter
conversion functions are equally valid. The third-parameter overload is the
"correct" one, but the two-parameter is allowed as-well because of our
"extension".

This is why your bug is a duplicate of this one.

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

Giovanni Bajo




-- 


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
                   ` (6 preceding siblings ...)
  2004-01-25 18:13 ` giovannibajo at libero dot it
@ 2004-01-25 18:25 ` gdr at integrable-solutions dot net
  2004-01-25 19:28 ` gianni at mariani dot ws
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: gdr at integrable-solutions dot net @ 2004-01-25 18:25 UTC (permalink / raw)
  To: gcc-bugs


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
                   ` (7 preceding siblings ...)
  2004-01-25 18:25 ` gdr at integrable-solutions dot net
@ 2004-01-25 19:28 ` gianni at mariani dot ws
  2004-02-01 22:52 ` pinskia at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: gianni at mariani dot ws @ 2004-01-25 19:28 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From gianni at mariani dot ws  2004-01-25 19:28 -------
| -- From giovannibajo at libero dot it

...
| 
| 2) For Bug 13809, the overload call is ambigous because partial ordering cannot
...

OK - I need to look into this a bit more before I can make an opinion so
I'll take your word for it.

| 
| 3) Given #1 and #2, you understand that there is indeed an ambiguity for GCC in
...
| 
| This is why your bug is a duplicate of this one.

I see where you're coming from now.  Thanks.

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

My bad - I misread the stl_set.h declaration.



-- 


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
                   ` (8 preceding siblings ...)
  2004-01-25 19:28 ` gianni at mariani dot ws
@ 2004-02-01 22:52 ` pinskia at gcc dot gnu dot org
  2004-07-13 18:59 ` jens dot maurer at gmx dot net
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-02-01 22:52 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-02-01 22:52 -------
*** Bug 13966 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |japple at freeshell dot org


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
                   ` (9 preceding siblings ...)
  2004-02-01 22:52 ` pinskia at gcc dot gnu dot org
@ 2004-07-13 18:59 ` jens dot maurer at gmx dot net
  2004-07-13 19:23 ` bangerth at dealii dot org
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: jens dot maurer at gmx dot net @ 2004-07-13 18:59 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From jens dot maurer at gmx dot net  2004-07-13 18:59 -------

I understand that matching a template with defaulted parameters
as an argument to a template template parameter is an issue
for the Extension working group of the ISO C++ committee.

However, may I kindly ask that the patch that apparently
aligns gcc with the current standard be applied,
so that code like this is rejected in pedantic mode:

template<class T, class D = int>
class A { };

template<template<class T> class P>
class B { };

B<A> b;


I've got a hard time convincing my colleague that his
template template tricks are not legal, and requiring him
to download the Intel compiler just to see an error
message seems out of proportion.

Thank you.


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jens dot maurer at gmx dot
                   |                            |net


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
                   ` (10 preceding siblings ...)
  2004-07-13 18:59 ` jens dot maurer at gmx dot net
@ 2004-07-13 19:23 ` bangerth at dealii dot org
  2004-09-02 15:09 ` lerdsuwa at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: bangerth at dealii dot org @ 2004-07-13 19:23 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From bangerth at dealii dot org  2004-07-13 19:23 -------
You are asking us to do something that we may soon undo again. We are not 
likely to have the resources to do this, in particular since it is 
an extension that does not affect the validity of any other code. 
 
W. 

-- 


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
                   ` (11 preceding siblings ...)
  2004-07-13 19:23 ` bangerth at dealii dot org
@ 2004-09-02 15:09 ` lerdsuwa at gcc dot gnu dot org
  2005-01-09 15:26 ` lerdsuwa at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: lerdsuwa at gcc dot gnu dot org @ 2004-09-02 15:09 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From lerdsuwa at gcc dot gnu dot org  2004-09-02 15:09 -------
*** Bug 17268 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |v dot haisman at sh dot cvut
                   |                            |dot cz


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
                   ` (12 preceding siblings ...)
  2004-09-02 15:09 ` lerdsuwa at gcc dot gnu dot org
@ 2005-01-09 15:26 ` lerdsuwa at gcc dot gnu dot org
  2005-03-30 16:00 ` pinskia at gcc dot gnu dot org
  2005-08-31 19:49 ` pinskia at gcc dot gnu dot org
  15 siblings, 0 replies; 19+ messages in thread
From: lerdsuwa at gcc dot gnu dot org @ 2005-01-09 15:26 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From lerdsuwa at gcc dot gnu dot org  2005-01-09 15:26 -------
I posted a solution for this on comp.std.c++:
 
http://groups.google.co.th/groups?hl=th&lr=&group=comp.std.c%2B%2B&selm=ac0d020c.0501090129.6b1fc0a9%40posting.google.com

-- 


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
                   ` (13 preceding siblings ...)
  2005-01-09 15:26 ` lerdsuwa at gcc dot gnu dot org
@ 2005-03-30 16:00 ` pinskia at gcc dot gnu dot org
  2005-08-31 19:49 ` pinskia at gcc dot gnu dot org
  15 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-03-30 16:00 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-03-30 16:00 -------
*** Bug 20691 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sstrasser at systemhaus-
                   |                            |gruppe dot de


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
                   ` (14 preceding siblings ...)
  2005-03-30 16:00 ` pinskia at gcc dot gnu dot org
@ 2005-08-31 19:49 ` pinskia at gcc dot gnu dot org
  15 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-08-31 19:49 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-31 19:42 -------
Note this was caused as an extension to the C++ standard:
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#150

-- 


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <bug-9737-5473@http.gcc.gnu.org/bugzilla/>
  2006-02-07 11:11 ` mmitchel at gcc dot gnu dot org
  2006-02-07 11:14 ` mmitchel at gcc dot gnu dot org
@ 2006-10-11  0:43 ` pinskia at gcc dot gnu dot org
  2 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-10-11  0:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #24 from pinskia at gcc dot gnu dot org  2006-10-11 00:43 -------
*** Bug 29425 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mstaley at lanl dot gov


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <bug-9737-5473@http.gcc.gnu.org/bugzilla/>
  2006-02-07 11:11 ` mmitchel at gcc dot gnu dot org
@ 2006-02-07 11:14 ` mmitchel at gcc dot gnu dot org
  2006-10-11  0:43 ` pinskia at gcc dot gnu dot org
  2 siblings, 0 replies; 19+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-02-07 11:14 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #23 from mmitchel at gcc dot gnu dot org  2006-02-07 11:14 -------
Fixed in G++ 4.2.


-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|SUSPENDED                   |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.2.0


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Bug c++/9737] [DR150] Partial template specialisation selection failure involving template parameter defaults
       [not found] <bug-9737-5473@http.gcc.gnu.org/bugzilla/>
@ 2006-02-07 11:11 ` mmitchel at gcc dot gnu dot org
  2006-02-07 11:14 ` mmitchel at gcc dot gnu dot org
  2006-10-11  0:43 ` pinskia at gcc dot gnu dot org
  2 siblings, 0 replies; 19+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-02-07 11:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #22 from mmitchel at gcc dot gnu dot org  2006-02-07 11:11 -------
Subject: Bug 9737

Author: mmitchel
Date: Tue Feb  7 11:11:30 2006
New Revision: 110693

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=110693
Log:
        PR c++/9737
        * pt.c (coerce_template_template_parms): Do not templates with
        excess default arguments to match template template parameters
        with fewer parameters.
        (coerce_template_parms): Add use_default_args parameter; use
        default arguments only when true.
        (lookup_template_class): Adjust call to coerce_template_parms.
        (fn_type_unification): Likewise.
        (unify): Likewise.
        (get_bindings): Likewise.
        (dependent_type_p): Add assertions.

        PR c++/9737
        * g++.dg/template/ttp15.C: New test.
        * g++.dg/template/ttp16.C: Likewise.
        * g++.dg/template/ttp17.C: Likewise.
        * g++.old-deja/g++.pt/ttp36.C: Remove.
        * g++.old-deja/g++.pt/ttp19.C: Likewise.
        * g++.old-deja/g++.pt/ttp37.C: Likewise.
        * g++.old-deja/g++.pt/ttp38.C: Likewise.
        * g++.old-deja/g++.pt/ttp39.C: Likewise.
        * g++.old-deja/g++.pt/ttp9.C: Likewise.
        * g++.old-deja/g++.pt/ttp40.C: Likewise.
        * g++.old-deja/g++.pt/ttp51.C: Likewise.
        * g++.old-deja/g++.pt/ttp26.C: Likewise.
        * g++.old-deja/g++.pt/ttp36.C: Likewise.

        * testsuite/testsuite_tr1.h (test_property): New function.
        * testsuite/tr1/4_metaprogramming/type_properties/extent/extent.cc 
        (test01) 

Added:
    trunk/gcc/testsuite/g++.dg/template/ttp15.C
    trunk/gcc/testsuite/g++.dg/template/ttp16.C
    trunk/gcc/testsuite/g++.dg/template/ttp17.C
Removed:
    trunk/gcc/testsuite/g++.old-deja/g++.pt/ttp19.C
    trunk/gcc/testsuite/g++.old-deja/g++.pt/ttp26.C
    trunk/gcc/testsuite/g++.old-deja/g++.pt/ttp35.C
    trunk/gcc/testsuite/g++.old-deja/g++.pt/ttp36.C
    trunk/gcc/testsuite/g++.old-deja/g++.pt/ttp37.C
    trunk/gcc/testsuite/g++.old-deja/g++.pt/ttp38.C
    trunk/gcc/testsuite/g++.old-deja/g++.pt/ttp39.C
    trunk/gcc/testsuite/g++.old-deja/g++.pt/ttp40.C
    trunk/gcc/testsuite/g++.old-deja/g++.pt/ttp51.C
    trunk/gcc/testsuite/g++.old-deja/g++.pt/ttp9.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/pt.c
    trunk/gcc/testsuite/ChangeLog
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/testsuite/testsuite_tr1.h
   
trunk/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/extent/extent.cc


-- 


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


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2006-10-11  0:43 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20030217232600.9737.gccbugs@contacts.eelis.net>
2003-07-10 13:01 ` [Bug c++/9737] [DR184] Partial template specialisation selection failure involving template parameter defaults lerdsuwa at gcc dot gnu dot org
2003-10-30 14:10 ` lerdsuwa at gcc dot gnu dot org
2004-01-25 17:02 ` giovannibajo at libero dot it
2004-01-25 17:12 ` [Bug c++/9737] [DR150] " giovannibajo at libero dot it
2004-01-25 17:24 ` gdr at integrable-solutions dot net
2004-01-25 17:40 ` gianni at mariani dot ws
2004-01-25 18:13 ` giovannibajo at libero dot it
2004-01-25 18:25 ` gdr at integrable-solutions dot net
2004-01-25 19:28 ` gianni at mariani dot ws
2004-02-01 22:52 ` pinskia at gcc dot gnu dot org
2004-07-13 18:59 ` jens dot maurer at gmx dot net
2004-07-13 19:23 ` bangerth at dealii dot org
2004-09-02 15:09 ` lerdsuwa at gcc dot gnu dot org
2005-01-09 15:26 ` lerdsuwa at gcc dot gnu dot org
2005-03-30 16:00 ` pinskia at gcc dot gnu dot org
2005-08-31 19:49 ` pinskia at gcc dot gnu dot org
     [not found] <bug-9737-5473@http.gcc.gnu.org/bugzilla/>
2006-02-07 11:11 ` mmitchel at gcc dot gnu dot org
2006-02-07 11:14 ` mmitchel at gcc dot gnu dot org
2006-10-11  0:43 ` pinskia at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).