строки на символы y, как мне это сделать? Ко мне может попасть любой тип данных.
написать шаблонную функцию
Это то понятно
А что непонятно?
Что внутри этой шаблонной функции писать
basic_string?
Очевидно, что тип, аргумента, который принимает шаблонная функция должен удовлетворять каким-то контрактам. Например, у него может быть operator [], методы size, length ...
В том то и дело, что я не знаю, что мне туда придёт. Если это не сможет скастоваться в строку, то этого делать не нужно, а если сможет, то нужно.
Пишите код в предположении, что тип ведет себя "как строка"
А если мне туда какой-нибудь енам придёт?
Напиши псевдокод хотя бы. Ничего не понятно
тогда программа не скомпилируется. И кажется, что это правильно
А мне надо этот енам дальше продолжить обрабатывать, пропустив этот шаг
Такой странный вопрос, как будто должны мысли прочитать. Если там разные реализации строк (сишные, стринг, стрингвью) то делайте enable_if или if constexrp(std_is_base_of) или чтото в этом духе
Что за бред то?
Подождите, сейчас чат допытается до сути вопроса
void f(auto x) { ... if constexpr (requires { x.replace('a', 'b'); }) { x.replace('a', 'b'); } ... }
Обсуждают сегодня