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