【发布时间】:2016-06-24 18:53:53
【问题描述】:
在处理 C++ 中的泛型代码时,我会发现 std::identity 函子(如 std::negate)非常有用。标准库中不存在这是否有特殊原因?
【问题讨论】:
-
它出现在 C++11 之前的草稿中。 IIRC,它用于防止
std::forward中的模板参数推导。在此过程中,有人意识到forward需要remove_reference,它还处理了不可演绎的上下文部分,也许identity不再被其他任何东西使用,所以它被丢弃了。 -
有趣的是,一些 C++ 实现似乎在内部使用了
std::_Identity模板。
标签: c++ function c++11 identity negate