Я читаю "Ускоренный C ++" Кенига. Он пишет, что «новая идея состоит в том, что мы можем использовать + для объединения строки и строкового литерала - или, если на то пошло, двух строк (но не двух строковых литералов).
Хорошо, я полагаю, это имеет смысл. Теперь на два отдельных упражнения, призванных прояснить это.
Верны ли следующие определения?
const string hello = "Hello";
const string message = hello + ",world" + "!";
Теперь я попытался выполнить вышеупомянутое, и это сработало! Так что я был счастлив.
Затем я попытался выполнить следующее упражнение;
const string exclam = "!";
const string message = "Hello" + ",world" + exclam;
Это не сработало. Теперь я понимаю, что это как-то связано с тем фактом, что вы не можете объединить два строковых литерала, но я не понимаю семантической разницы между тем, почему мне удалось заставить работать первый пример (разве '' t ", world" и "!", два строковых литерала? Разве это не сработало?), но не второй.