[Bug 2130718] [NEW] -Werror=template-id-cdtor error is emitted with C++ standard less than 20

Andrey Mongilyov 2130718 at bugs.launchpad.net
Wed Nov 5 12:37:40 UTC 2025


Public bug reported:

When compiling with C++11 standard I got an error `-Werror=template-id-cdtor` which is meant to be emitted with >= C++20 standard (https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html#index-Wtemplate-id-cdtor):
```
mav at mav:~# g++-14 --version
g++-14 (Ubuntu 14.2.0-4ubuntu2~24.04) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

mav at mav:~# g++-14 -Wall -Werror -std=gnu++11 main.cpp
main.cpp:3:15: error: template-id not allowed for constructor in C++20 [-Werror=template-id-cdtor]
    3 |     Example<T>() {};
      |               ^
main.cpp:3:15: note: remove the ‘< >’
cc1plus: all warnings being treated as errors
```
Bug is in gcc 15.2.1 too (checked on last Fedora).


Ubuntu release:
```
mav at mav:~# lsb_release -rd
No LSB modules are available.
Description:    Ubuntu 24.04.3 LTS
Release:        24.04
```
Packages versions:
```
mav at mav:~# apt-cache policy gcc-14
gcc-14:
  Installed: 14.2.0-4ubuntu2~24.04
  Candidate: 14.2.0-4ubuntu2~24.04
  Version table:
 *** 14.2.0-4ubuntu2~24.04 500
        500 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages
        500 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Packages
        100 /var/lib/dpkg/status
     14-20240412-0ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages
mav at mav:~# apt-cache policy g++-14
g++-14:
  Installed: 14.2.0-4ubuntu2~24.04
  Candidate: 14.2.0-4ubuntu2~24.04
  Version table:
 *** 14.2.0-4ubuntu2~24.04 500
        500 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages
        500 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Packages
        100 /var/lib/dpkg/status
     14-20240412-0ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages
```


Bug is reproducible.
Minimum code example:
```
template <typename T>
class Example {
    Example<T>() {};
};

int main() {
    return 0;
}
```
Compile with -Wall -Werror. C++ standard can be either not selected or selected below than 20 (with >= C++20 error is legit).

** Affects: gcc-defaults (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-defaults in Ubuntu.
https://bugs.launchpad.net/bugs/2130718

Title:
  -Werror=template-id-cdtor error is emitted with C++ standard less than
  20

Status in gcc-defaults package in Ubuntu:
  New

Bug description:
  When compiling with C++11 standard I got an error `-Werror=template-id-cdtor` which is meant to be emitted with >= C++20 standard (https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html#index-Wtemplate-id-cdtor):
  ```
  mav at mav:~# g++-14 --version
  g++-14 (Ubuntu 14.2.0-4ubuntu2~24.04) 14.2.0
  Copyright (C) 2024 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

  mav at mav:~# g++-14 -Wall -Werror -std=gnu++11 main.cpp
  main.cpp:3:15: error: template-id not allowed for constructor in C++20 [-Werror=template-id-cdtor]
      3 |     Example<T>() {};
        |               ^
  main.cpp:3:15: note: remove the ‘< >’
  cc1plus: all warnings being treated as errors
  ```
  Bug is in gcc 15.2.1 too (checked on last Fedora).

  
  Ubuntu release:
  ```
  mav at mav:~# lsb_release -rd
  No LSB modules are available.
  Description:    Ubuntu 24.04.3 LTS
  Release:        24.04
  ```
  Packages versions:
  ```
  mav at mav:~# apt-cache policy gcc-14
  gcc-14:
    Installed: 14.2.0-4ubuntu2~24.04
    Candidate: 14.2.0-4ubuntu2~24.04
    Version table:
   *** 14.2.0-4ubuntu2~24.04 500
          500 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages
          500 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Packages
          100 /var/lib/dpkg/status
       14-20240412-0ubuntu1 500
          500 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages
  mav at mav:~# apt-cache policy g++-14
  g++-14:
    Installed: 14.2.0-4ubuntu2~24.04
    Candidate: 14.2.0-4ubuntu2~24.04
    Version table:
   *** 14.2.0-4ubuntu2~24.04 500
          500 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages
          500 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Packages
          100 /var/lib/dpkg/status
       14-20240412-0ubuntu1 500
          500 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages
  ```

  
  Bug is reproducible.
  Minimum code example:
  ```
  template <typename T>
  class Example {
      Example<T>() {};
  };

  int main() {
      return 0;
  }
  ```
  Compile with -Wall -Werror. C++ standard can be either not selected or selected below than 20 (with >= C++20 error is legit).

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/2130718/+subscriptions




More information about the foundations-bugs mailing list