Sto implementando un meccanismo di puntatore/indicatore debole utilizzando std::atomic
s per il contatore di riferimento (come this). Per la conversione di un puntatore debole per uno forte ho bisogno di atomicamenteC++ incremento std :: atomic_int se diverso da zero
- controllo se il contatore di riferimento forte è diverso da zero
- in caso affermativo, incrementarlo
- so se qualcosa è cambiato.
C'è un modo per farlo utilizzando std::atomic_int
? Penso che sia possibile utilizzare uno degli compare_exchange
, ma non riesco a capirlo.
'std :: shared_ptr' utilizza i contatori di riferimento atomiche, si sa. Puoi sempre controllare la fonte. – Pubby
cosa significa la parte "sapere se qualcosa è cambiato"? – inf
Se era diverso da zero prima == se è stato incrementato. –