Thanks Tim. Since I wasn't sure if there was someone who does all this stuff, I thought it made sense to check. I've had an idea that might work. If it doesn't I may take you up on asking a colleague (although template metaprogramming is one of those corner areas that comes up mostly in writing numeric code, so it's perfectly possible to have an amazing knowledge of C++ but never have worked on anything where template metaprogramming is appropriate.)