I want the following function to be used for some binding purpose.
template <class T>
T fun(T arg) { return arg; }
Is there a standard C++ function available to do this. Or do I have to write my own?
我可能会这样写:
template <typename T>
auto identity(T && x) -> decltype(std::forward<T>(x))
{
return std::forward<T>(x);
}
不,没有,但你已经完成了。
不过,我会调用它id
而不是fun
,因为它是身份函数。
如上所述,您可以简单地使用#define fn(x) (x)。但是当你将复杂的数据结构传递给你的“fn”时,事情会变得非常丑陋,让我们很难用误导性的编译器消息来追溯错误。
但是,如果您的绑定问题是一些线程同步问题。那么答案将是如何将线程 API/库用于此类事情。例如,对于 Ocaml,它类似于 >>= res 我们绑定的地方,直到我们找到用 res 表示的东西的结果。让我知道您正在使用的库的名称是否如此?
玩得开心。