Perguntas com a marcação «unique-ptr»

std :: unique_ptr é um ponteiro inteligente que retém a propriedade exclusiva de um objeto por meio de um ponteiro. unique_ptr não pode ser copiado ou atribuído por cópia, duas instâncias de unique_ptr não podem gerenciar o mesmo objeto.

6
Por que usar std :: make_unique em C ++ 17?
Pelo que entendi, C ++ 14 foi introduzido std::make_uniqueporque, como resultado da ordem de avaliação dos parâmetros não ser especificada, isso não era seguro: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Explicação: se a avaliação primeiro alocar a memória para o ponteiro bruto, em seguida, chamar g()e uma exceção for lançada …
96 c++  c++17  unique-ptr 

6
error :: make_unique não é membro de 'std'
Estou tentando compilar o seguinte programa de pool de threads postado na revisão de código para testá-lo. /codereview/55100/platform-independant-thread-pool-v4 Mas estou recebendo os erros threadpool.hpp: In member function ‘std::future<decltype (task((forward<Args>)(args)...))> threadpool::enqueue_task(Func&&, Args&& ...)’: threadpool.hpp:94:28: error: ‘make_unique’ was not declared in this scope auto package_ptr = make_unique<task_package_impl<R, decltype(bound_task)>> (std::move(bound_task), std::move(promise)); ^ threadpool.hpp:94:81: …

4
Como declarar std :: unique_ptr e para que serve?
Procuro entender como std::unique_ptrfunciona e para isso encontrei este documento. O autor parte do seguinte exemplo: #include <utility> //declarations of unique_ptr using std::unique_ptr; // default construction unique_ptr<int> up; //creates an empty object // initialize with an argument unique_ptr<int> uptr (new int(3)); double *pd= new double; unique_ptr<double> uptr2 (pd); // overloaded …
94 c++  pointers  std  unique-ptr 





4
Ponteiro exclusivo - Por que o destruidor é chamado 3 vezes
Eu tenho um método que retorna um objeto por valor. O método vem de uma biblioteca que eu não tenho controle. Para o manuseio adicional do objeto, quero continuar trabalhando com um unique_ptr nesse objeto. Aqui está um exemplo: #include <iostream> #include <memory> class Bla { public: Bla() { std::cout …
8 c++  unique-ptr 
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.