std::ref()函数
时间: 2024-01-21 22:02:47 浏览: 131
std::ref()函数主要在函数式编程中使用,比如在std::bind中。std::bind是对参数进行拷贝,无法传入引用类型的参数。为了解决这个问题,引入了std::ref()函数。使用std::ref()可以在模板传参的时候传入引用。这样可以确保参数以引用的方式传递,而不是进行拷贝。在一些情况下,比如多线程std::thread的可调用对象期望入参为引用时,也需要显式使用std::ref()来绑定引用进行传参。需要注意的是,std::ref()只是尝试模拟引用传递,并不能真正变成引用。在非模板情况下,std::ref()无法实现引用传递,只有在模板自动推导类型或类型隐式转换时,std::ref()能够使用包装类型reference_wrapper来代替原本会被识别的值类型,从而实现引用传递。
#### 引用[.reference_title]
- *1* *3* [C++ std::ref————详解](https://blog.csdn.net/m0_51551385/article/details/123965079)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [std::ref用法](https://blog.csdn.net/qq_33726635/article/details/124086352)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文