Как вы объявляете возвращаемое значение представления range-v3? - PullRequest
0 голосов
/ 03 декабря 2018

В настоящее время я могу составить представления range-v3 следующим образом:

auto v = ranges::view::reverse | ranges::view::filter([](int l){return l>5;});

Но если бы я хотел вернуть v из функции, мне нужно было бы знать ее тип.Каков тип представления range-v3?

1 Ответ

0 голосов
/ 03 декабря 2018

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

...