有一件事一直萦绕在我的脑海中。只需考虑这个功能:
template<typename T>
T foo(const T& value)
{
return value;
}
它是任何给定值的最简单的函数包装器。但是,我一直想知道它是否有一个“标准名称”(许多人会认出,例如 map、filter、sqrt 等函数...)。它们是需要使用此类功能的众所周知的问题吗?
最佳答案
原则上它是一个恒等函数,但实际上它会强制复制参数。
因此,如果 T
具有值语义,它仍然是一个真实身份。
否则,它是一个克隆函数。
一个完美的身份应该是
template<typename T>
const T& identity(const T& value)
{
return value;
}
关于c++ - 接受一个参数并返回它的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11537610/