Разрешение функции принять списки инициализаторов 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

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