有没有办法只评估函子的参数?
Is There a Way to Just Evaluate the Argument to a Functor?
给定 foo
,这是一个 vector
,我想用 all_of
评估它的内容。但我真正想检查的是每个元素的计算结果为 true
.
我可以使用 logical_not
和 none_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)
给定 foo
,这是一个 vector
,我想用 all_of
评估它的内容。但我真正想检查的是每个元素的计算结果为 true
.
我可以使用 logical_not
和 none_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)