Custom conversions, deduction guide, C++

Рейтинг: 0Ответов: 1Опубликовано: 10.01.2023

Извините, не знаю, как точнее сформулировать вопрос (иначе бы получилось найти ответ в гугле). Есть такая вещь, как определённые пользователем приведения типов данных. Но есть ещё кое-что: можно заставить компилятор считать всякое вхождение const char* за std::string. (Для тех же deduction guides, например.) Делается это в одну строку немудрёными словами. Вот только я не помню и не могу найти, какими. Помогите, пожалуйста.

Ответы

▲ 0

Это называется custom deduction guide и он для встроенных классов не работает. Пример использования для самописных:

template <typename T>
struct S {
  
  T data;

  S(T x) : data(x) {}
};


S(const char*) -> S<std::string>;

S s("abc"); //decltype(s.data) - std::string