Unäres Plus (+) gegen wörtliche Zeichenfolge

Heute habe ich einen Ausdruck geschrieben:

"<" + message_id + "@" +  + ">"

und war überrascht, dass es tatsächlich kompiliert. (PSmessage_id&nbsp;ist ein QString, er würde auch mit einem std :: string funktionieren

Ich mache oft solche Dinge, lasse während der Arbeit eine Variable weg und erwarte vom Compiler, dass er mir sagt, wo mir noch Einträge fehlen. Das Finale würde ungefähr so ​​aussehen:

"<" + message_id + "@" + network_domain + ">"

Jetzt würde ich gerne wissen, warum der + unäre Operator gegen ein String-Literal gültig ist !?