So, according to standard the temporary objects should not be destroyed before full expression execution (expression whitch is not a part of another expression).
The question is: is StreamLogger() << "foo1" << "foo2" << "foo3"; full expression or not?