There are no errors / warnings when compiling the following source code with gcc:
template< typename T = int > T func( ); template< typename T = int > T func( );
When I compile the same source code using clang ++, I got the following error:
redeftempparam.cc:2:24: error: template parameter redefines default argument template< typename T = int > T func( ); ^ redeftempparam.cc:1:24: note: previous default template argument defined here template< typename T = int > T func( ); ^ 1 error generated.
Compilation command
[clang++|g++] -Wall -Werror -std=c++11 redeftempparam.cc
(Version Information: gcc 4.7.2, clang version 3.3 (trunk 171722))
My question is:
Is this type of override allowed? If not: can you point me to the corresponding point in the C ++ standard?
source share