There has to be some conversion. The two operands need to be converted to an integer type, and then the result of addition needs to be converted to a string. For example using boost::lexical_cast for brevity:
you would be correct in thinking that i can only use standard c++. Could you show in a little more detail the way in which the second example you gave works, using the operands that i gave? Thanks by the way i really appreciate it.