Wydajność tworzenia C ++ weak_ptr
Przeczytałem, że tworzenie lub kopiowanie std :: shared_ptr wiąże się z pewnym narzutem (przyrost atomowy licznika odniesienia itp.).
Ale co z utworzeniem z niego std :: weak_ptr:
Obj * obj = new Obj();
// fast
Obj * o = obj;
// slow
std::shared_ptr<Obj> a(o);
// slow
std::shared_ptr<Obj> b(a);
// slow ?
std::weak_ptr<Obj> c(b);
Miałem nadzieję na szybszą wydajność, ale wiem, że współużytkowany wskaźnik nadal musi zwiększać licznik słabych referencji. Czy to nadal jest tak powolne, jak kopiowanie shared_ptr do innego?