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

            Bug ID: 60044
           Summary: Template argument of alias template not evaluated
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: roman.perepelitsa at gmail dot com

$ cat test.cc
#include <stdio.h>

template <class T>
using Void = void;

template <class T, class E = void>
struct Foo {
  const char* value = "primary template";
};

template <class T>
struct Foo<T, Void<typename T::not_found>> {
  const char* value = "specialization";
};

int main() {
  puts(Foo<int>().value);
}

$ g++ -std=c++11 test.cc && ./a.out
specialization

Expected output:
primary template

Reply via email to