http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54484
Diego Novillo <dnovillo at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
CC| |dnovillo at gcc dot gnu.org
Resolution| |FIXED
--- Comment #3 from Diego Novillo <dnovillo at gcc dot gnu.org> 2012-09-04
21:09:59 UTC ---
Fixed. From the IRC discussion:
16:55 dnovillo jason: ping
16:55 jason dnovillo: pong
16:55 dnovillo jason: in
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54484, is g++ being too lenient?
16:55 gccbot Bug 54484: normal, P3, ---, unassigned, UNCONFIRMED ,
r190927 breaks bootstrap with clang compiler
16:55 dnovillo jason: i put the default value in the *definition* of the
function, not the declaration.
16:56 dnovillo i am fixing it with:
16:56 dnovillo - void embedded_init (int, int);
+ void embedded_init (int, int = 0);
16:56 dnovillo and removing the dflt value from the definition.
16:56 jason hmm
16:56 dnovillo this pacifies clang++, but i'm not sure whether clang++ is
being too picky
16:57 dnovillo or g++ too lenient.
16:59 dnovillo a cursory search on the web says that clang++ is correct:
http://clang-developers.42468.n3.nabble.com/default-arguments-cannot-be-added-to-an-out-of-line-definition-of-a-member-of-a-class-template-td3182781.html
17:00 jason dnovillo: yes, clang seems to be right
17:00 jason I wonder why that restriction is there
17:00 dnovillo ok, should i file a g++ bug?
17:01 jason sure
17:01 jason 8.3.6 says "Default arguments for a member function of a
class template
17:01 jason shall be specified on the initial declaration of the member
function within the class template."