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

Имеется код вроде
f("abc");
Компилятор считает, что это char*, а мне надо, чтобы считал литерал std::string.
Можно это как-то реализовать?
  • Вопрос задан
  • 101 просмотр
Решения вопроса 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));
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 11:20
5000 руб./за проект
01 мая 2024, в 10:55
3000 руб./за проект
01 мая 2024, в 10:55
3000 руб./за проект