prospero78su писал(а):
Почему бы не воспользоваться
википедией?))
Идея слабой ссылки мне не нравится.
Это не вопрос личных предпочтений, это вопрос эффективности решений
Пример с коллекцией в википедии действительно дурацкий и не имеющий особого смысла без контекста. Вот тебе другой, напишу на обероне, может понятнее будет:
Код: "OBERON"
VAR window: WEAK POINTER TO Window;
PROCEDURE OpenWindow();
BEGIN
IF window = NIL THEN
window := MakeNewWindow();
END;
window.Activate();
END OpenWindow;
Можно придумать кучу решений этой задачи без слабых ссылок, все они будут
сложнее, чем приведенное решение.
prospero78su писал(а):
Много проблем было из-за этого у питона со связкой Gtk. Pidgin периодически падал с диким грохотом несколько лет.
Это не проблема слабых ссылок как идеи...
prospero78su писал(а):
С другого конца мне это чем-то напоминает поведение Си: его не просили, а он сам молча приводит типы.
Тебе везде Си мерещится
Каким боком он здесь?
prospero78su писал(а):
Если опираться на приводимый механизм -- то подсчёт, имхо, проще в реализации и дешевле стоит.
Известные мне реализации слабых ссылкок дополняют реализацию подсчета ссылок, каких-то особых дополнительных накладных расходов там не требуется, они даже включены в стандартную
библиотеку С++11.
Как поддержка слабых ссылок сказывается на ЯП с GC не скажу, не разбирался.