标签: c++ stl
为什么在C ++中提出了两个具有不同名称ref和cref的函数?为什么不是唯一重载的ref函数?是否有一些重要的语义原因?
ref
cref
答案 0 :(得分:11)
因为有时您希望将const引用包装到非const对象。在这种情况下,std::cref允许您编写
const
std::cref
std::cref(x)
而不是
std::ref(static_cast<const T&>(x))
(其中T当然是x)的类型。
T
x