Desempenho de criação do weak_ptr em C ++

Eu li que criar ou copiar um std :: shared_ptr envolve alguma sobrecarga (incremento atômico do contador de referência, etc.).

Mas que tal criar um std :: weak_ptr a partir dele:

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);

Eu estava esperando em algum desempenho mais rápido, mas eu sei que o ponteiro compartilhado ainda tem que incrementar o contador de referências fracas .. Então, isso ainda é tão lento quanto copiar um shared_ptr em outro?

questionAnswers(2)

yourAnswerToTheQuestion