Код: Выделить всё
std::vector getEngagementsForDay(DayIndex day) {
std::vector outputVector;
for(EngagementIndex engagement : engagements){
if(getDay(engagement) == day) {
outputVector.pushback(engagement);
}
}
return outputVector;
}
Вместо этого я хочу заменить возвращаемый тип представлением.
Вопрос № 1. Каков тип возвращаемого значения для соответствующего представления?
Похоже, что во всех примерах и обсуждениях используется auto. В моем крошечном магазине auto не рекомендуется, но если это действительно лучший вариант, мы, вероятно, сможем с этим смириться.
Но более серьезная проблема заключается в том, что я даже не могу заставить свой код скомпилироваться. с auto.
В основном, в зависимости от некоторых условий выполнения, мне нужно иметь возможность возвращать из функции 4 «вида» представлений.
< strong>Пустое представление
Код: Выделить всё
return std::ranges::empty_view();
Код: Выделить всё
return engagements | std::views::all;
Код: Выделить всё
return engagements | std::views::take(size);
Код: Выделить всё
return engagements | std::views::filter(engagementDayFilter(day));
Каковы мои варианты?
У меня нет опыта работы с CPP20, но Google не слишком помог.
Подробнее здесь: https://stackoverflow.com/questions/790 ... a-function