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

            Bug ID: 100983
           Summary: Deduction guide for member template class rejected at
                    class scope
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: brycelelbach at gmail dot com
  Target Milestone: ---

```
struct X {
  template <unsigned N>
  struct Y {
    template <typename... Ts>
    Y(Ts...) {}
  };

  template <typename... Ts>
  Y(Ts...) -> Y<sizeof...(Ts)>;
};
```

I'm fairly confident this is legal code, but GCC rejects it, stating that a
deduction guide is only allowed at namespace scope.

http://eel.is/c++draft/temp.deduct.guide#3.sentence-4 says:

"A deduction-guide shall inhabit the scope to which the corresponding class
template belongs and, for a member class template, have the same access."

... which suggests to me that it is allowed.

https://godbolt.org/z/cWa69scjW

Reply via email to