Преимущества использования пользовательского литерала для строк вместо строкового литерала

В разделе «Примечания» в разделе «Документация по SO» говорилось следующее:

Начиная с C ++ 14, вместо использования"foo"рекомендуется использовать"foo"s, какs строковый литерал, который преобразуетconst char * "foo" вstd::string "foo".

Единственное преимущество, которое я вижу, используя

std::string str = "foo"s;

вместо

std::string str = "foo";

в том, что в первом случае компилятор может выполнить copy-elision (я думаю), что будет быстрее, чем вызов конструктора во втором случае.

Тем не менее, это (еще не гарантировано), поэтому первый может также вызвать конструктор, конструктор копирования.

Игнорирование случаев, когда этотребуется использоватьstd::string литералы как

std::string str = "Hello "s + "World!"s;

есть ли польза от использованияstd::string литералы вместоconst char[] литералы?

Ответы на вопрос(4)

Ваш ответ на вопрос