Как сменить тип литералов в С++?

Имеется код вроде
f("abc");
Компилятор считает, что это char*, а мне надо, чтобы считал литерал std::string.
Можно это как-то реализовать?
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
@nagayev Автор вопроса
Ответ из комментариев:
Начиная с С++14 можно сделать так:
"abc"s
Так же можно определять пользовательские литералы
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
f(std::string("abc"))

Каких-то специальных встроенных в язык средств созадавать const std::string нету.
Ответ написан
@vanyamba-electronics
Богатый возможностями С++ позволяет программисту использовать перекрытие функций.
Где-нибудь в файле main.h создайте прокси-функцию:
inline void f(char* str) {
    f(std::string(str));
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы