public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/59673] New: wrong specialization used when a partial specialization of a member template is explicitly specialized
@ 2014-01-04 2:22 richard-gccbugzilla at metafoo dot co.uk
2015-03-18 20:16 ` [Bug c++/59673] " paolo.carlini at oracle dot com
2020-04-14 23:41 ` dacamara.cameron at gmail dot com
0 siblings, 2 replies; 3+ messages in thread
From: richard-gccbugzilla at metafoo dot co.uk @ 2014-01-04 2:22 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59673
Bug ID: 59673
Summary: wrong specialization used when a partial
specialization of a member template is explicitly
specialized
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: richard-gccbugzilla at metafoo dot co.uk
GCC rejects this:
template<typename A> struct X {
template<typename B> struct Y;
template<typename B> struct Y<B[1]> { int x; }; // #1
template<typename B> struct Y<B[2]> { int y; };
};
template<> template<typename B> struct X<int>::Y<B[1]> { int z; }; // #2
int a = X<int>::Y<int[1]>().z;
... because it uses #1, not #2, when instantiating X<int>::Y<int[1]>.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/59673] wrong specialization used when a partial specialization of a member template is explicitly specialized
2014-01-04 2:22 [Bug c++/59673] New: wrong specialization used when a partial specialization of a member template is explicitly specialized richard-gccbugzilla at metafoo dot co.uk
@ 2015-03-18 20:16 ` paolo.carlini at oracle dot com
2020-04-14 23:41 ` dacamara.cameron at gmail dot com
1 sibling, 0 replies; 3+ messages in thread
From: paolo.carlini at oracle dot com @ 2015-03-18 20:16 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59673
Paolo Carlini <paolo.carlini at oracle dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2015-03-18
Ever confirmed|0 |1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/59673] wrong specialization used when a partial specialization of a member template is explicitly specialized
2014-01-04 2:22 [Bug c++/59673] New: wrong specialization used when a partial specialization of a member template is explicitly specialized richard-gccbugzilla at metafoo dot co.uk
2015-03-18 20:16 ` [Bug c++/59673] " paolo.carlini at oracle dot com
@ 2020-04-14 23:41 ` dacamara.cameron at gmail dot com
1 sibling, 0 replies; 3+ messages in thread
From: dacamara.cameron at gmail dot com @ 2020-04-14 23:41 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59673
Cameron <dacamara.cameron at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dacamara.cameron at gmail dot com
--- Comment #1 from Cameron <dacamara.cameron at gmail dot com> ---
I also observe the breakage with gcc10:
struct A {
class B { };
template <typename>
class C { };
};
template <typename T>
struct U {
template <typename>
static constexpr bool tvalue = false;
};
template <>
template <typename V>
constexpr bool U<A::B>::tvalue<A::C<V>> = true;
static_assert(U<A::B>::tvalue<A::C<int>>); // fails on gcc10. clang10 compiles
successfully.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-04-14 23:41 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-04 2:22 [Bug c++/59673] New: wrong specialization used when a partial specialization of a member template is explicitly specialized richard-gccbugzilla at metafoo dot co.uk
2015-03-18 20:16 ` [Bug c++/59673] " paolo.carlini at oracle dot com
2020-04-14 23:41 ` dacamara.cameron at gmail dot com
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).