hmm definitely worth checking, but since the intermediate strings are all r-values, this is all move constructed (unlike java). But I'll take a look at the stringstream