This is too clever to the point of being painful. (Not to mention, it has a performance penalty for no real benefit.)
I think I'd just give up and go home if I ever saw this in code I had to maintain.
EDIT: Actually, looking more closely, I guess there isn't a performance penalty (I saw back_inserter and assumed it was required for the implementation). That said, I still think it's far too clever.
Gah. Nice idea, but the double-operator hack seems quite painful and error prone, especially with operators right in the middle of the precedence hierarchy.
This might be one of the few rare justifications for overloading the comma operator, for syntax similar to that of Haskell's backquote:
arbitrary+expr ,foo, arbitrary-expr
Then the ,foo, would get processed last, letting the expressions evaluate first, which matches the semantics of Haskell's infixing backquotes (lowest precedence by default).
Even then, though, that would get ugly in a hurry when mixed with function calls, requiring parentheses for sanity.
operator, is one of the operators defining a sequence point (e.g. guaranteeing the left side of the expression executes in whole before the right - others being &&, ||, and ?:.)
Overloading the operator removes this sequence point. Too sketchy for my blood.
I don't think it would be as easy as what hamlet [1] looks like, since C++ doesn't have a notion of quasi quoting as far as I am aware, but it might be interesting.
Mostly because the order of operations is unclear. I read it as producing "HelloHelloHello, ". That is, repeat the previous thing three times and then concatenate that with the string ", ". It's surprising to me that "repeat" results in a new object with new semantics.