Thanks for the suggestions! I'll try them out. salem c, aggregate initialization might be the simplest thing w/o adding more boilerplate to the struct code itself, and breaking other parts of the code. seeplus, unfortunately making the constructor not implicitly defined breaks some aggregate struct initializations and the compiler isn't fully C++11 compliant, so that's unfortunate -- it appears to work fine in Visual Studio. TheIdeasMan, definitely changing the types to be stronger would produce a compiler error like I wanted, so maybe that's a path forward.