public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/99699] New: Type deduction failure for deducing a non-type template parameter via another deducible structural type (class template specialization) non-type template parameter
@ 2021-03-21 18:14 davveston at gmail dot com
2022-04-07 9:30 ` [Bug c++/99699] " davveston at gmail dot com
2022-06-02 18:06 ` ppalka at gcc dot gnu.org
0 siblings, 2 replies; 3+ messages in thread
From: davveston at gmail dot com @ 2021-03-21 18:14 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99699
Bug ID: 99699
Summary: Type deduction failure for deducing a non-type
template parameter via another deducible structural
type (class template specialization) non-type template
parameter
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: davveston at gmail dot com
Target Milestone: ---
The following program:
// --------------------------------------------
template<int N> struct S {};
template<S s> struct U {};
template<typename> struct V { V() = delete; };
template <int N, S<N> s>
struct V<U<s>> {};
V<U<S<0>{}>> v{}; // #1
// Expected: use partial specialization #1
// GCC actual: error (rejects-valid): use of deleted function
int main() {}
// --------------------------------------------
is rejected by gcc HEAD 11.0.1 20210320 (experimental) when compiling with 'g++
prog.cc -Wall -Wextra -std=c++2b', as #1 matches to the primary template
instead of the partial specialization.
It seems to find the non-type template parameter N non-deducible; however all
arguments of the partial specialization are arguably deducible from the
'U<S<0>{}>' argument to the primary template:
- 'A' / 'P' matching 'U<S<0>{}>' / 'U<s>' deduces 's' to 'S<0>{}' and its type
to 'S<0>',
- 'A' / 'P' matching 'S<0>' to 'S<N>' deduces 'N' to '0'; 'N' is particularly
not in a non-deduced context above, as it's not used in sub-expression in the
non-type template parameter 's' of the partial specialization.
Demo: https://wandbox.org/permlink/QQQxa3BhBTMM476E
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/99699] Type deduction failure for deducing a non-type template parameter via another deducible structural type (class template specialization) non-type template parameter
2021-03-21 18:14 [Bug c++/99699] New: Type deduction failure for deducing a non-type template parameter via another deducible structural type (class template specialization) non-type template parameter davveston at gmail dot com
@ 2022-04-07 9:30 ` davveston at gmail dot com
2022-06-02 18:06 ` ppalka at gcc dot gnu.org
1 sibling, 0 replies; 3+ messages in thread
From: davveston at gmail dot com @ 2022-04-07 9:30 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99699
--- Comment #1 from David Friberg <davveston at gmail dot com> ---
This seems to have been fixed on trunk/GCC 12:
https://wandbox.org/permlink/qq207mBL7q5ndRgS
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/99699] Type deduction failure for deducing a non-type template parameter via another deducible structural type (class template specialization) non-type template parameter
2021-03-21 18:14 [Bug c++/99699] New: Type deduction failure for deducing a non-type template parameter via another deducible structural type (class template specialization) non-type template parameter davveston at gmail dot com
2022-04-07 9:30 ` [Bug c++/99699] " davveston at gmail dot com
@ 2022-06-02 18:06 ` ppalka at gcc dot gnu.org
1 sibling, 0 replies; 3+ messages in thread
From: ppalka at gcc dot gnu.org @ 2022-06-02 18:06 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99699
Patrick Palka <ppalka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |DUPLICATE
CC| |ppalka at gcc dot gnu.org
Status|UNCONFIRMED |RESOLVED
--- Comment #2 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Fixed with r12-7966-g95533fe4f014c1, so PR105110 was a duplicate of this.
*** This bug has been marked as a duplicate of bug 105110 ***
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-06-02 18:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-21 18:14 [Bug c++/99699] New: Type deduction failure for deducing a non-type template parameter via another deducible structural type (class template specialization) non-type template parameter davveston at gmail dot com
2022-04-07 9:30 ` [Bug c++/99699] " davveston at gmail dot com
2022-06-02 18:06 ` ppalka at gcc dot gnu.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).