LINUX.ORG.RU

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

Исправление tailgunner, (текущая версия) :

Компилятор вызывает конструкторы, деструкторы и операторы копирования-перемещения. И все.

Нет разницы между «компилятор вызывает функции инкремента/декремента» и «компилятор вызывает конструкторы, деструкторы и операторы копирования-перемещения, которые выполняют инкремент/декремент».

Принципиально это не отличается от двух видов ссылок в C++/CLI или даже @nogc в D.

Это разные вещи

Это одно и то же - ручное указание, где использовать GC, а где нет.

запрет GC обрабатывать ссылки определенного вида и ручное управление памятью посредством подсчета ссылок.

Ручное управление - это, например, в ядре. Там и в самом деле нужно вручную писать вызов функции, которая уменьшает/увеличивает счетчик ссылок. А с shared_ptr эти функции вызывает компилятор.

Так что ты пока еще не доказал, что shared_ptr — это сборщик мусора.

Я и не собирался это доказывать - только объяснить. Если мое объяснение тебя не убеждает - окей, оставайся при своем мнении.

Исправление tailgunner, :

Компилятор вызывает конструкторы, деструкторы и операторы копирования-перемещения. И все.

Нет разницы между «компилятор вызывает функции инкремента/декремента» и «компилятор вызывает конструкторы, деструкторы и операторы копирования-перемещения, которые выполняют инкремент/декремент».

Принципиально это не отличается от двух видов ссылок в C++/CLI или даже @nogc в D.

Это разные вещи

Это одно и то же - ручное указание, где использовать GC, а где нет.

запрет GC обрабатывать ссылки определенного вида и ручное управление памятью посредством подсчета ссылок.

Ручное управление - это, например, в ядре. Там и в самом деле нужно вручную писать вызов функции, которая уменьшает/увеличивает счетчик ссылок. А с shared_ptr эти функции вызывает компилятор.

Так что ты пока еще не доказал, что shared_ptr — это сборщик мусора.

Я и не собирался это доказывать - только объяснить. Если мое объяснение тебя явно не убеждает - окей, оставайся при своем мнении.

Исходная версия tailgunner, :

Компилятор вызывает конструкторы, деструкторы и операторы копирования-перемещения. И все.

Нет разницы между «компилятор вызывает функции инкремента/декремента» и «компилятор вызывает конструкторы, деструкторы и операторы копирования-перемещения, которые выполняют инкремент/декремент».

Принципиально это не отличается от двух видов ссылок в C++/CLI или даже @nogc в D.

Это разные вещи

Это одно и то же - ручное указание, где использовать GC, а где нет.

запрет GC обрабатывать ссылки определенного вида и ручное управление памятью посредством подсчета ссылок.

Ручное управление - это, например, в ядре. Там и в самом деле нужно вручную писать вызов функции, которая уменьшает/увеличивает счетчик ссылок. А с shared_ptr эти функции вызывает компилятор.

Так что ты пока еще не доказал, что shared_ptr — это сборщик мусора.

Я и не собирался это доказывать - только объяснить. Если мое объяснение тебя явно не убеждает - окей, оставайся при своем мнеии.