Как именно вы бы обработали то, что список может измениться?
Ну кажется тупое решение очевидно, скопировать список перед нотификациями, но это кажется дорогим.
Из того, что мне пришло в голову это помимо списка наблюдателей, завести список действий добавить/удалить/етс наблюдателя и выполнять его в начале метода notify
На работе у нас используется первый подход, с некоторыми оптимизациями, например наблюдатели копируются в small_vector, если их немного он не полезет в кучу и сохранит их на стеке.
Post #614
632
