Как вы объявляете возвращаемое значение представления range-v3?
В настоящее время я могу составить представления range-v3 следующим образом:
auto v = ranges::view::reverse | ranges::view::filter([](int l){return l>5;});
Но если бы я хотел вернуть v из функции, мне нужно было бы знать ее тип. Каков тип представления range-v3?
1 ответ
Решение
Начиная с C++14 вы можете использовать auto
как возвращаемый тип функций, и это будет выведено:
auto f() {
return ranges::view::reverse | ranges::view::filter([](int l){return l>5;});
}
// f's return type is the type of the return expression, exactly as is I had:
// auto returnValue = return-expression;
// where f's type is decltype(returnValue)
Единственным недостатком является то, что определение f
должен появиться в том же TU, где вы его используете.