Мне было интересно, почему нет некоторых перегрузок для некоторых алгоритмов STL, чтобы их можно было использовать с кортежами.Под некоторыми я подразумеваю те, которые не переупорядочивают элементы.Хорошим примером может быть std::for_each
.
Существует ли ограничение по языку, например, тот факт, что невозможно совместить оценку во время компиляции и оценку во время выполнения?Позвольте мне прояснить это последнее предложение:
Я знаю, что сама итерация должна была бы стать итерацией во время компиляции, затем должны быть определены итераторы времени компиляции, чтобы использовать время компиляции std::get<>
для выборкиценности.После этого должна быть возможность применять шаблонную лямбду к каждому разнородному типу в кортеже, но затем оценивается значение этого типа во время выполнения.
Я думаю, что это будет возможно, даже если я лично не будузнаю, с чего начать.Я видел реализации, которые совсем не похожи на std::for_each
для достижения того же результата.Почему так?
(ПРИМЕЧАНИЕ: под кортежем я имею в виду std::pair
и std::tuple
)