http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45829
--- Comment #4 from Sander Land <sander.land at gmail dot com> 2010-09-29 13:05:45 UTC --- (In reply to comment #3) > You didn't. A definition would be > > const double x::a; > > at file-scope. Your "definition" is a declaration. Fair enough, I thought it was both. Still doesn't explain the binary operator (and everything else) working, -Wall not giving anything, while the unary operator triggers a linker error.