Начиная с 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, где вы его используете.