Что происходит с конкатенацией смежных строковых литералов при наличии модификатора (L, u8 и т. Д.)

В C и C ++ допустимо разбивать строковый литерал, потому что препроцессор или компилятор объединить смежные строковые литералы.

const char *zStr = "a" "b"; // valid

Что происходит, когда строковые литералы имеют префикс L (широкие символы), u (UTF-16), U (UTF -32), u8 (UTF-8) и необработанные строковые литералы ( R "foo (это" необработанный строковый литерал "с двойными кавычками) foo" )?

Например, разрешено следующее:

const wchar_t *zStr = L"a" "b"; // valid?
11
задан ildjarn 6 November 2012 в 23:13
поделиться