Есть ли способ просто оценить аргумент функтору? - PullRequest
0 голосов
/ 07 января 2019

Учитывая foo, что является vector Я хочу оценить его содержимое с помощью all_of. Но все, что я действительно пытаюсь проверить, это то, что каждый элемент оценивается как true.

Я могу сделать это, используя logical_not и none_of, но я бы предпочел не использовать двойные негативы, и было бы глупо написать лямбду: [](const auto param) -> bool { return param; }

Стандарт предоставляет мне функтор, который делает то, что я хочу?

1 Ответ

0 голосов
/ 07 января 2019

То, что вы ищете, это std::identity, который был добавлен в C ++ 20. Он принимает параметр и возвращает его без изменений. Это operator() выглядит как

template<typename T>
constexpr T&& operator()( T&& t ) const noexcept;

и возвращается

std::forward<T>(t)
...