Подсмотрен здесь (а туда взят со stackoverflow):
template< typename T, typename F, typename R = typename std::result_of<F(T)>::type > std::vector<R> select(std::vector<T> const & c, F s) { std::vector<R> v; std::transform(std::begin(c), std::end(c), std::back_inserter(v), s); return v; } |
Суть трюка в том, что он позволяет вывести тип R, который должен быть указан как тип значения для возвращаемого функцией std::vector-а.
Комментариев нет:
Отправить комментарий