Articles of smart pointers

Diferenças entre std :: make_unique e std :: unique_ptr

O std::make_unique tem algum benefício de eficiência como o std::makes_shared ? Comparado com a construção manual de std::unique_ptr : std::make_unique(1); // vs std::unique_ptr(new int(1));

Existe algum uso para unique_ptr com array?

std::unique_ptr tem suporte para matrizes, por exemplo: std::unique_ptr p(new int[10]); mas é necessário? provavelmente é mais conveniente usar std::vector ou std::array . Você acha algum uso para essa construção?

magia shared_ptr :)

O Sr. Lidström e eu tivemos uma discussão 🙂 A alegação do Sr. Lidström é que uma construção shared_ptr p(new Derived); não requer que o Base tenha um destruidor virtual: Armen Tsirunyan : “Realmente? O shared_ptr limpará corretamente? Você poderia, por favor, neste caso, demonstrar como esse efeito poderia ser implementado?” Daniel Lidström : “O […]

Quais implementações de ponteiro inteligente C ++ estão disponíveis?

Comparações, Prós, Contras e Quando Usar? Isso é um desdobramento de um segmento de garbage collection em que o que eu achava ser uma resposta simples gerava muitos comentários sobre algumas implementações de pointers inteligentes específicos, então parecia valer a pena começar um novo post. Em última análise, a questão é quais são as várias […]

Por que não posso push_back um unique_ptr em um vetor?

O que há de errado com este programa? #include #include int main() { std::vector<std::unique_ptr> vec; int x(1); std::unique_ptr ptr2x(&x); vec.push_back(ptr2x); //This tiny command has a vicious error. return 0; } O erro: In file included from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/mingw32/bits/c++allocator.h:34:0, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/allocator.h:48, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/memory:64, from main.cpp:6: c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/unique_ptr.h: In member function ‘void __gnu_cxx::new_allocator::construct(_Tp*, const _Tp&) [with _Tp = std::unique_ptr, […]

Que tipo de ponteiro eu uso quando?

Ok, então a última vez que escrevi o C ++ para uma vida, o std::auto_ptr era todo o std lib disponível, e o boost::shared_ptr era toda a raiva. Eu nunca realmente olhei para os outros tipos de ponteiro inteligentes fornecidos. Eu entendo que o C ++ 11 agora fornece alguns dos tipos que surgiram, mas […]

RAII e pointers inteligentes em C ++

Na prática, com C ++, o que é RAII , quais são os pointers inteligentes , como eles são implementados em um programa e quais são os benefícios de usar o RAII com pointers inteligentes?

O que é um ponteiro inteligente e quando devo usar um?

O que é um ponteiro inteligente e quando devo usar um?