我希望以下函数用于某些绑定目的。
template <class T>
T fun(T arg) { return arg; }
是否有可用于执行此操作的标准C ++函数。或者我必须自己写吗?
答案 0 :(得分:3)
我可能这样写:
template <typename T>
auto identity(T && x) -> decltype(std::forward<T>(x))
{
return std::forward<T>(x);
}
答案 1 :(得分:0)
不,没有,但你已经完成了。
我称之为id
而不是fun
,因为它是身份功能。
答案 2 :(得分:0)
以简单的方式,你可以 - 如上所述 - 使用#define fn(x)(x)。但是当你将复杂的数据结构传递给你的'fn'时,事情会变得非常丑陋,让人很难用错误的编译器消息追溯错误。
但是如果您的绑定问题是某些线程同步问题。那么答案将是如何使用线程API /库来实现这一点。例如,对于Ocaml来说,它就像我们绑定的&gt;&gt; = res,直到我们找到res表示的结果。如果您正在使用的图书馆的名称是这样的话,请告诉我?
玩得开心。