http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57253
Bug ID: 57253
Summary: GCC ignores ref-qualifiers of pseudo-function types in
explicit specializations
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: lucdanton at free dot fr
$ g++-snapshot --version
g++-snapshot (Debian 20130509-1) 4.9.0 20130509 (experimental) [trunk revision
198734]
$ cat main.cpp
template<typename T> struct foo;
template<> struct foo<void()&> {};
template<> struct foo<void()> {};
int main()
{}
$ g++-snapshot -std=c++11 main.cpp
main.cpp:4:19: error: redefinition of 'struct foo<void()>'
template<> struct foo<void()> {};
^
main.cpp:3:19: error: previous definition of 'struct foo<void()>'
template<> struct foo<void()&> {};
^
Aren't the specializations different, much like specializing on void() and
void() const?