Ответ 1
Унарный +
может быть применен к значениям арифметического типа, значениям нумерации без привязки и значениям указателя, потому что...
стандарт С++ определяет его таким образом, в С++ 11 §5.3.1/7.
В этом случае строковый литерал, который имеет массив типов char const
, распадается на указатель на char const
.
Всегда полезно взглянуть на документацию, когда кто-то задается вопросом о функциональности чего-то.
"Операнд унарного оператора +
должен иметь арифметическое, неперечисленное перечисление или тип указателя, а
результатом является значение аргумента. Интегральное продвижение выполняется на интегральных или перечисляющих операндах.
Тип результата - это тип продвинутого операнда.