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