The InOutString function is not really useful, in most cases it can be done more simple with string operator+. This function is causing issues on MSVC (perhaps the template param names) anyway.