Например, у меня есть некоторая функция pet_maker(), которая создает и возвращает Cat или Dog в качестве базы Pet. Я хочу многократно вызывать эту функцию и делать что-то с возвращенным Pet.
Традиционно я бы new Cat или Dog в pet_maker() и возвращал указатель на него, однако вызов new намного медленнее, чем выполнение всего в стеке.
Есть ли опрятный способ, который любой может подумать о возврате как абстракции, без необходимости делать новое при каждом вызове функции, или есть какой-то другой способ, который я могу быстро создать и вернуть абстракции?