On May 21, 2017, at 2:54 PM, Graham Bloice <graham.bloice@xxxxxxxxxxxxx> wrote:
> It would appear not in a static initializer list. I can do it piecemeal, e.g. foo.member = &fff.
Does "piecemeal" really mean "in executable code"?
> If I try to assign &fff in an initialiser list I get an "error C2099: initializer is not a constant".
If you're initializing a static variable, that's probably not done in executable code.
The difference may be that the compiler can generate the appropriate machine code to calculate the address of fff, but can't generate the right object-file indications to the linker and run-time loader to get *them* to do it - and if the variable being initialized is const, that might not work as it might be mapped read-only.