История изменений
Исправление 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 — это сборщик мусора.
Я и не собирался это доказывать - только объяснить. Если мое объяснение тебя явно не убеждает - окей, оставайся при своем мнеии.