It doesn't matter either way - I've already added the ctor. NPC CustomData *does* properly initialize its members. But, I personally don't think this CustomData absolutely needs a defined ctor. Having one is better than not, but it's both declared and defined within a cpp file, inside an anonymous namespace, and is intended to be constructed solely by a single wrapper function which initializes the variables. I suppose if I really wanted to ensure that I could make a default constructor that doesn't initialize variables (slight optimization, since we know that the wrapper does it), make it private, friend the class to MWClass::Light's wrapper function, but I believe that's overkill for what's supposed to be a simple struct.