Попаднах на тази статия за copy ellision в C++ и съм виждал коментари за това в библиотеката за повишаване. Това е привлекателно, тъй като предпочитам функциите ми да изглеждат така
verylargereturntype DoSomething(...)
отколкото
void DoSomething(..., verylargereturntype& retval)
И така, имам два въпроса относно това
- Google практически няма никаква документация за това, колко реално е това?
- Как мога да проверя дали тази оптимизация наистина се извършва? Предполагам, че включва разглеждане на сглобката, но нека просто кажем, че това не е силната ми страна. Ако някой може да даде много елементарен пример за това как изглежда успешната елизия, това би било много полезно
Няма да използвам copy ellision само за разкрасяване на нещата, но ако мога да бъда гарантиран, че работи, звучи доста полезно.