У меня есть безымянная лямбда-функция, которую мне нужно применить ко многим диапазонам, и я не хочу повторять ее, чтобы избежать дублирования кода (она состоит из более чем 5 строк кода).
Пока мы ждем поддержки std::ranges::views::concat от всех компиляторов, как проще всего это реализовать?
Я хочу иметь что-то вроде код ниже с некоторыми оговорками:
Мне бы хотелось, чтобы лямбда-выражение располагалось в конце списка аргументов, как в большинстве алгоритмов std.
Я бы меня больше устраивает синтаксис for_each_range({r1,r2,r3},lambda), но я не могу понять, как заставить эти { } работать здесь. Std::initializer_list, похоже, не мой путь, поскольку для него требуются константные данные, и мне приходится менять значения в диапазонах.
У меня есть безымянная лямбда-функция, которую мне нужно применить ко многим диапазонам, и я не хочу повторять ее, чтобы избежать дублирования кода (она состоит из более чем 5 строк кода). Пока мы ждем поддержки std::ranges::views::concat от всех компиляторов, как проще всего это реализовать? Я хочу иметь что-то вроде код ниже с некоторыми оговорками: [list] [*]Мне бы хотелось, чтобы лямбда-выражение располагалось в конце списка аргументов, как в большинстве алгоритмов std. [*]Я бы меня больше устраивает синтаксис for_each_range({r1,r2,r3},lambda), но я не могу понять, как заставить эти { } работать здесь. Std::initializer_list, похоже, не мой путь, поскольку для него требуются константные данные, и мне приходится менять значения в диапазонах. [/list] [code]#include #include #include