Angus> What do you use if snprintf() is not defined on your system? Lars> Why will a stringstream not work? Thanks for the hint. I hadn't come across them before (still learning...). It worked perfectly. Angus> #define def_simple_output(type, form) \ Angus> void output_simple(type const& data) { \ Angus> space(); \ Angus> unrequire(20-snprintf((char*)require(20), 20, form, data)); \ Angus> } Lars> What kind of function is this unrequire? Let's not delve too deep into the internals of xtl! require and unrequire allows us to traverse a character string. Thanks again, Angus