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

Reply via email to