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

最佳答案

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

std::cref(x)

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

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

08-05 04:53