Я наткнулся на эту статью на copy ellision в C++, и я видел комментарии об этом в библиотеке boost. Это привлекательно, так как я предпочитаю, чтобы мои функции выглядели как
verylargereturntype DoSomething(...)
скорее, чем
void DoSomething(..., verylargereturntype& retval)
Итак, у меня есть два вопроса по этому поводу
- У Google практически нет документации по этому поводу, насколько это реально?
- Как я могу проверить, что эта оптимизация действительно происходит? Я предполагаю, что это связано с просмотром сборки, но скажем так, это не моя сильная сторона. Если бы кто-нибудь мог привести очень простой пример того, как выглядит успешный ellision, это было бы очень полезно.
Я не буду использовать copy ellision только для того, чтобы приукрасить вещи, но если я могу гарантировать, что это работает, это звучит довольно полезно.