компилятору что вам точно не нужна самостоятельная функция (передача аргументов по стеку это следствие) и пусть это решит компилятор (решит всмысле если функция действительно имеет затрату на вызов, а не опускание ниже (един экземляр вызова)).
2. inline always. обязует копировать внутренности.
из 1. ситуации с inline нужны когда вам действительно по апи продумано и вы хотите чтобы вас компилятор точно понял. компилятор не всегда может понять вашу ситуацию и скорее не верно чето заинлайнить или наоборот.
факт 1. поэтому придуман MIR чтобы легче синтаксически понять и оптимизировать.
факт 2. поэтому разрабы std остерегаются. какбы у них 1 == 1 не был как перейти в одну перейти в другую перейти еще куда изза нейкой вычурной чистоты кода. У них ясно, функция коротка? да и в одно действие? знач inline.
и без бенчей:) какбы в идее раста заложили что вы ничего просто так не платите. даже изза того что у нас итеры с вложенностями множественными.
просто покурите как коды пишут (особенно std) и какие "даможет быть" вылезут если вы так сделаете.
ну и 3. у нас трейты реально по синтаксису самостоятельные fn. даже если вы этого не желаете или это looper
> У них ясно, функция коротка? да и в одно действие? знач inline. > https://doc.rust-lang.org/src/core/slice/mod.rs.html#1420
> 2. inline always. обязует копировать внутренности. > https://doc.rust-lang.org/reference/attributes/codegen.html?highlight=inline#the-inline-attribute #[inline(always)] suggests that an inline expansion should always be performed. Suggests
Обсуждают сегодня