STL ref和cref功能

时间:2014-10-29 08:16:41

标签: c++ stl

为什么在C ++中提出了两个具有不同名称refcref的函数?为什么不是唯一重载的ref函数?是否有一些重要的语义原因?

1 个答案:

答案 0 :(得分:11)

因为有时您希望将const引用包装到非const对象。在这种情况下,std::cref允许您编写

std::cref(x)

而不是

std::ref(static_cast<const T&>(x))

(其中T当然是x)的类型。