Unario plus (+) contra cadena literal

Hoy escribí una expresión:

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

Y se sorprendió de que realmente compilara. (PDmessage_id&nbsp;es una QString, también funcionaría con un std :: string)

A menudo hago cosas así, dejo de lado una variable mientras trabajo y espero que el compilador me diga dónde me faltan las entradas. La final se vería algo así:

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

Ahora me gustaría saber por qué el operador unario es válido contra una cadena literal.