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

            Bug ID: 106478
           Summary: GCC rejects valid code involving partial
                    specialization of variable template
           Product: gcc
           Version: 11.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jlame646 at gmail dot com
  Target Milestone: ---

The following program is incorrectly rejected by gcc. This can be verified
here: https://godbolt.org/z/f4c3d9voa

```
template<typename TSomeTemplate>
struct A
{
    static constexpr std::size_t B = 1;

    template<typename T, typename... Ts>
    static constexpr std::size_t C = 4;

    template<typename T>
    static constexpr std::size_t C<T> = B; //rejected by msvc and gcc
};

int main()
{
    int i = A<int>::C<int>;

    return 0;
}
```

The error for gcc says:

<source>:13:34: error: explicit template argument list not allowed
   13 |     static constexpr std::size_t C<T> = B; //rejected by msvc and gcc

Reply via email to