为什么在C++中提供了两个具有不同名称ref和cref的函数?为什么不是唯一重载的ref函数?有一些重要的语义原因吗? 最佳答案 因为有时您想将const引用包装到非const对象。在这种情况下,std::cref允许您编写std::cref(x) 代替std::ref(static_cast<const T&>(x)) (其中T当然是x的类型)。