有没有办法只评估函子的参数?

Is There a Way to Just Evaluate the Argument to a Functor?

给定 foo,这是一个 vector,我想用 all_of 评估它的内容。但我真正想检查的是每个元素的计算结果为 true.

我可以使用 logical_notnone_of 来做到这一点,但我宁愿不使用双重否定,写一个 lambda 感觉很愚蠢:[](const auto param) -> bool { return param; }

标准是否为我提供了一个满足我要求的仿函数?

您要查找的是 std::identity,它已添加到 C++20。它接受一个参数并且 returns 它不变。 operator() 看起来像

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

它returns

std::forward<T>(t)