https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87234
Bug ID: 87234
Summary: GCC should warn if template parameter redefines
default argument
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: david.bolvansky at gmail dot com
Target Milestone: ---
-O3 -Wall -Werror -std=c++17
template< typename T = int > T func( );
template< typename T = int > T func( ) {
}
No warning.
Clang:
<source>:5:24: error: template parameter redefines default argument
template< typename T = int > T func( ) {
^
<source>:4:24: note: previous default template argument defined here
template< typename T = int > T func( );
^
1 error generated.
See:
https://stackoverflow.com/questions/14197436/c11-template-parameter-redefines-default-argument