История изменений
Исправление Dark_SavanT, (текущая версия) :
Ты сильно удивишься, но в расте всё это тоже можно. Но с страданиями.
- malloc/free - можно как системный вызвать, так и обернуть в аллокатор, но дальше мудохайся сам
- new/delete - в чистом виде всё же нет, за счёт отсутствия явных конструкторов. Но тут могу обмануть, я некоторые детали помню плохо
- raii - Box
- шаредптр - (A)Rc и все-все-все
- арены - пример https://github.com/fitzgen/bumpalo
- гц - https://github.com/Manishearth/rust-gc
- не использовать динамическую память - no_std и поехали. Разницы с си - никакой. А вот плюсам без динамической памяти, на моей памяти было очень плохо, как раз из-за new/delete прибитых гвоздями.
Исправление Dark_SavanT, :
Ты сильно удивишься, но в расте всё это тоже можно. Но с страданиями.
- malloc/free - можно как системный вызвать, так и обернуть в аллокатор, но дальше мудохайся сам
- new/delete - в чистом виде всё же нет, за счёт отсутствия явных конструкторов. Но тут могу обмануть, я некоторые детали помню плохо
- raii - Box
- шаредптр - (A)Rc и все-все-все
- арены - по идее поверх кастомного аллокатора и на nightly allocator api реализуется, но не уверен, в эту глубь не лазил https://github.com/fitzgen/bumpalo
- гц - несколько лет назад была серия статей про это. ЕМНИП реализуемо, но вываливается из концепта и смотрится чужеродно. Типа? если уж хочется GC можно взять OCaml, а не страдать втаскивая в раст https://github.com/Manishearth/rust-gc
- не использовать динамическую память - no_std и поехали. Разницы с си - никакой. А вот плюсам без динамической памяти, на моей памяти было очень плохо, как раз из-за new/delete прибитых гвоздями.
Исправление Dark_SavanT, :
Ты сильно удивишься, но в расте всё это тоже можно. Но с страданиями, потому что всё перемещается в unsafe.
- malloc/free - можно как системный вызвать, так и обернуть в аллокатор, но дальше мудохайся сам
- new/delete - в чистом виде всё же нет, за счёт отсутствия явных конструкторов. Но тут могу обмануть, я некоторые детали помню плохо
- raii - Box
- шаредптр - (A)Rc и все-все-все
- арены - по идее поверх кастомного аллокатора и на nightly allocator api реализуется, но не уверен, в эту глубь не лазил https://github.com/fitzgen/bumpalo
- гц - несколько лет назад была серия статей про это. ЕМНИП реализуемо, но вываливается из концепта и смотрится чужеродно. Типа? если уж хочется GC можно взять OCaml, а не страдать втаскивая в раст https://github.com/Manishearth/rust-gc
- не использовать динамическую память - no_std и поехали. Разницы с си - никакой. А вот плюсам без динамической памяти, на моей памяти было очень плохо, как раз из-за new/delete прибитых гвоздями.
Исходная версия Dark_SavanT, :
Ты сильно удивишься, но в расте всё это тоже можно. Но с страданиями, потому что всё перемещается в unsafe.
- malloc/free - можно как системный вызвать, так и обернуть в аллокатор, но дальше мудохайся сам
- new/delete - в чистом виде всё же нет, за счёт отсутствия явных конструкторов. Но тут могу обмануть, я некоторые детали помню плохо
- raii - Box
- шаредптр - (A)Rc и все-все-все
- арены - по идее поверх кастомного аллокатора и на nightly allocator api реализуется, но не уверен, в эту глубь не лазил
- гц - несколько лет назад была серия статей про это. ЕМНИП реализуемо, но вываливается из концепта и смотрится чужеродно. Типа? если уж хочется GC можно взять OCaml, а не страдать втаскивая в раст
- не использовать динамическую память - no_std и поехали. Разницы с си - никакой. А вот плюсам без динамической памяти, на моей памяти было очень плохо, как раз из-за new/delete прибитых гвоздями.