http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53225
--- Comment #19 from Thomas W. Lynch <dimitrisdad at gmail dot com> 2012-05-04 21:27:18 UTC --- Johnathan, const static members are compile time beasts. There are almost macros like #define, but not quite as the compiler will give them storage if you take their address. I don't think it is a good idea to add another paradigm into this. Nor does your example explain how the field moved and was correctly assigned in the code I gave above with method() - if I were to accept your example as valid, then that code would not work - but it does, there is is. You can compile it, and get the memory dumps yourself in gdb. Can you speak to that example with method()? That would be very useful.