[Bug c++/104304] New: Compiler allows using a lambda with a capture as non-type template parameter (C++20)
dk949.david at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Jan 31 10:10:06 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104304
Bug ID: 104304
Summary: Compiler allows using a lambda with a capture as
non-type template parameter (C++20)
Product: gcc
Version: 11.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dk949.david at gmail dot com
Target Milestone: ---
Created attachment 52316
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52316&action=edit
Small test case (preprocessed .ii).
GCC version: 11.1.0
System type: linux x86_64
Flags used to compile the test case: '-Wpedantic' '-Wall' '-Wextra'
'-std=c++20'
Compiler output: No output
Expected behavior: Compilation error, or a warning.
Observed behavior: Sample compiles with no warnings or errors.
Details:
It should not be possible (if I understand the standard correctly) to pass a
lambda which captures something as a non-type template parameter, as it is not
a structured* type (because it has private non-static** members).
* C++ ISO standard 13.2 (6)
** C++ ISO standard 7.5.5.3 (10.2)
More information about the Gcc-bugs
mailing list