gpt4 book ai didi

c++ - 什么是 std::identity 以及它是如何使用的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:13 26 4
gpt4 key购买 nike

我只想知道std::identity的用途是什么?我在网上找不到任何有用的东西。我知道它是如何实现的:

template <typename T>
struct identity
{
T operator()(T x) const { return x; }
};

为什么我们真的需要这个?

最佳答案

其他人已经回答了这个问题 - 它对于函数类型模板参数的默认和 haskell 风格的函数式编程很有用。

但是您的示例实现不正确。您的代码将执行值复制,而 std::identity 不会执行 - 它会完美转发。它也是 constexpr 并且是透明的。

所以是一个如何实现的例子,我相信:

    struct identity
{
using is_transparent = void;

template <typename T>
constexpr T&& operator()(T&& t) const noexcept
{
return std::forward<T>(t);
}
};

关于c++ - 什么是 std::identity 以及它是如何使用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41767240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com