ciao.
Ho l'esigenza di fornire dei vincoli all eliminazione e altre manipolazioni di alcuni oggetti geometrici collegati tra loro.
Ad es. per quanto riguarda l'eliminazione un join(punto) puo' essere cancellato solo se non è attaccato a niente , un beam puo' esistere solo collegato a due join e cosi' via.
Ho pensato di utilizzare una sorta di smart pointer personalizzato per queste operazioni.
poi mi sono messo a cercare in google prima di postare ed ho visto che esistono smart pointer tipo il weak pointer che potrebbero servirmi , ad esempio quando si cancella un beam(asta)tutti i join collegati devono essere rimossi.
1)Esistono smart pointer pensati per possibilità di "customizzazione funzione decremento"? 2)o semplicemente come negli oggetti com l'oggetto implementa un interfaccia che ha due metodi release e addref e l'implementazione di questa interfaccia è customizzata nell' oggetto , in modo che se per ogni oggetto grafico cambio il decrement e l'increment del reference counter tutti gli oggetti di quel tipo si comporteranno in quella data maniera.

ho qualche difficoltà a pensare ad un implementazione di questo
1: che smart pointer e weak pointer usare per non partire da 0 e
2enso che si dovrebbero essere "intrusivi", come quelli del com se non sbaglio.
3:ci sono altre strategie che potrei usare?

grazie.