Несколько лет назад выходил доклад по memory layout academy.realm.io/posts/goto-mike-ash-exploring-swift-memory-layout
Так вот, не все структуры однозначно размещаются в стеке. Если это большая структура, которая занимает больше 2(?) слов в памяти, то там все переносится на heap со всеми вытекающими последствиями.
Не нашел то, о чем вы говорите в этом докладе. Да, докладчик говорит, что строки, массивы и прочие типы, которые многовероятно что будут больших значений, хранятся но куче, но там соверешнно другой механизм, которые называется «Indirect storage» (https://forums.developer.apple.com/thread/10322). Также структуры могут хранится на куче, если не помещаются в э.контейнер — эта тема будет раскрыта в следющей части данного перевода
P.S: буду рад, если вы скинете момент, на котором докладчик говорит о расположении структур на куче — самому интересно
Протокольно ориентированное программирование. Часть 1