C++中的返回值優(yōu)化
摘要: 返回值優(yōu)化(Return Value Optimization,簡(jiǎn)稱(chēng)RVO),是這么一種優(yōu)化機(jī)制:當(dāng)函數(shù)需要返回一個(gè)對(duì)象的時(shí)候,如果自己創(chuàng)建一個(gè)臨時(shí)對(duì)象用戶(hù)返回,那么這個(gè)臨時(shí)對(duì)象會(huì)消耗一個(gè)構(gòu)造函數(shù)(Constructor)的調(diào)用、一個(gè)復(fù)制構(gòu)造函數(shù)的調(diào)用(Copy Constructor)以及一個(gè)析構(gòu)函數(shù)(Destructor)的調(diào)用的代價(jià)。而如果稍微做一點(diǎn)優(yōu)化,就可以將成本降低到一個(gè)構(gòu)造函數(shù)的代價(jià),下面是在Visual Studio 2008的Debug模式下做的一個(gè)測(cè)試:(在GCC下測(cè)試的時(shí)候可能編譯器自己進(jìn)行了RVO優(yōu)化,看不到兩種代碼的區(qū)別) 閱讀全文posted @ 2011-10-12 18:40 LoveBeyond| 編輯 收藏