LINUX.ORG.RU

История изменений

Исправление 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 прибитых гвоздями.