всё равно женеричная, значит при компиляции крейта не компилится полностью в бинарный код, а просто сохраняет тело для того, чтобы при использовании скомпилировать. Тогда какой смысл явно указывать, чтобы компилятор засейвил тело, если он и так его засейвит?
Тоже спрашивал уже, внятный ответ на тот момент так и не получил
Ну вот надеюсь кто-то знает и ответит
я вообще не понял что тут написано
Потому что дженерик превращается в код, код компилируется. А вот как он будет компилироваться - зависит от наличия inline, а не от того что там были какие-то дженерики.
То есть компилятор сам не в состоянии догадаться, что можно функцию заинлайнить, если она явно не помечена?
Может, если она используется в одном или паре мест
В общем дженерики не имеют ни какого отношения к инлайну - это параллельные вещи.
А ок. То есть на всякий случай всё же стоит помечать #[inline] женеричные функции?
Да. Но компиялтор мог бы женеричную функцию сам инлайнить, как он это делает например с обычными функциями в пределах одного крейта
в пределах крейта инлайнет. Возможно
Если она вызывается один раз - то скорее всего он так и сделает.
Обсуждают сегодня