C++11供給的std::ref本家兒要用于std::bind, std::bind默認按照值傳遞,std::ref可以更改為引用傳遞,而std::cref是包裝const的引用傳遞,本文將連系例子來申明若何利用std::ref.
起首界說如下所示的函數,函數三個入參都是引用傳遞的體例
 接著不利用std::ref的環境下,按照如下圖所示的代碼段來挪用std::bind
 調試運行成果如下所示,可以看出,挪用std::bind傳入的三個變量,運行前后都沒有轉變,申明std::bind默認是按照值傳遞
 采用std::ref來包裝三個變量,使得傳入std::bind的變量為引用的體例
 從運行成果看,運行前后變量的值,發生了轉變,這也就申明std::bind顛末std::ref之后采用的是引用的體例
 采用std::cref是包裝const的引用體例,可是const是不克不及改變值的
 從運行成果看,const變量是不會轉變的,因為const變量不克不及點竄
 0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!