Разрешение функции принять списки инициализаторов Bred без другой перегрузкиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Разрешение функции принять списки инициализаторов Bred без другой перегрузки

Сообщение Anonymous »

У меня есть функция, которая принимает произвольные итерабируемые объекты/контейнеры:

Код: Выделить всё

auto iterate(auto&& iterable);
< /code>
и он работает на них, используя диапазон для петлей в целом. и std :: generator 
, но это не удастся, когда я пытаюсь передать ему список инициации:

Код: Выделить всё

iterate({1, 2, 3});

Я получаю ошибку ошибки: нет функции сопоставления для вызова 'itate Auto: 57 '.
Как я могу включить списки инатаризации в рассматриваемых кандидатов для вычета без написания отдельной перегрузки? Мне нужно, чтобы это было только одной функцией, потому что я также хочу писать утилиты на основе итератора, которые работают на нескольких итерациях, и я не знаю, как писать функции, которые легко работали бы на всех из них, если бы мне пришлось написать несколько функций для каждая комбинация обычного итерационного и инициационного листа.

Подробнее здесь: https://stackoverflow.com/questions/794 ... r-overload
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»