It seems like, to have associativity in the sense of 
"(a+b)+c = a+(b+c)", you'd have to extend &#60;&#60; to also become the string concatenation operator in C++. There are quite a few rules that need to hold to make it work...