Рассмотрим следующий код:
struct Object
{
// ...
};
struct CompoundObject
{
// ...
Object object;
};
CompoundObject get()
{
static Object object;
CompoundObject compoundObject = {object};
return compoundObject;
}
int main()
{
CompoundObject compoundObject = get();
}
Вопрос заключается в следующем: учитывая возможные RVO и NRVO оптимизации, есть ли гарантия того, что object НЕ БУДЕТ перемещен?
Если такие гарантии есть, я бы хотел знать, на чем они основываются.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости