Буду ли я сталкиваться с проблемой определения объема?
Да.
Ваша лямбда захватывает color
по ссылке, и после возврата getHouse
стек раскручивается, и дальнейший доступ к color
является неопределенным поведением.
Вы должны захватить color
по значению, чтобы избежать такой проблемы.
h.colorSelector = [color]() {
return color;
}
Если вам нужно сослаться на тот же color
, возможно, вы хотите разместить где-нибудь std::shared_ptr<color>
и вместо этого получить его копию.