Oh, I forgot to mention that I enclose my indirect construction assert call in a ?debug, ? pair. I also like to wrap the assignments to _indirectconstruct of true and false in a ?debug block, so that there is no overhead on the release code (albeit that overhead would be small, but still...)