https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85127

            Bug ID: 85127
           Summary: Members implementation outside class doesn't compile
                    if class name is an alias from a using
           Product: gcc
           Version: 7.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: quen...@huot-marchand.fr
  Target Milestone: ---

Hello,

As I am coding with a coding style with a margin of 80 characters, I try to
minimize my length as much as possible with the use of "using".

The problem is well described here : https://godbolt.org/g/C2qQgL
As you can see it compile on clang and msvc

Apparently you can't do :

template <class T>
class Base {
public:
    void foo();
};

template <class T>
using B = Base<T>;

template <class T>
void B<T>::foo() {
}


But the standard seems to authorize it.

Reply via email to