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
Como passo um argumento unique_ptr para um construtor ou função?
Eu sou novo em mover semântica no C ++ 11 e não sei muito bem como lidar com unique_ptrparâmetros em construtores ou funções. Considere esta classe fazendo referência própria: #include <memory> class Base { public: typedef unique_ptr<Base> UPtr; Base(){} Base(Base::UPtr n):next(std::move(n)){} virtual ~Base(){} void setNext(Base::UPtr n) { next = std::move(n); …

5
Retornando unique_ptr das funções
unique_ptr<T>não permite a construção da cópia, mas suporta a semântica de movimentação. No entanto, posso retornar a unique_ptr<T>de uma função e atribuir o valor retornado a uma variável. #include <iostream> #include <memory> using namespace std; unique_ptr<int> foo() { unique_ptr<int> p( new int(10) ); return p; // 1 //return move( p …
367 c++  c++11  unique-ptr 



2
Por que não posso enviar push_back um unique_ptr para um vetor?
O que há de errado com este programa? #include <memory> #include <vector> int main() { std::vector<std::unique_ptr<int>> vec; int x(1); std::unique_ptr<int> 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 …

6
make_unique e encaminhamento perfeito
Por que não há std::make_uniquemodelo de função na biblioteca C ++ 11 padrão? eu acho std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); um pouco detalhado. O seguinte não seria muito melhor? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); Isso oculta newbem e apenas menciona o tipo uma vez. De qualquer forma, aqui está …

6
std :: unique_ptr com um tipo incompleto não será compilado
Estou usando o pimpl-idiom com std::unique_ptr: class window { window(const rectangle& rect); private: class window_impl; // defined elsewhere std::unique_ptr<window_impl> impl_; // won't compile }; No entanto, recebo um erro de compilação sobre o uso de um tipo incompleto, na linha 304 em <memory>: Aplicativo inválido de ' sizeof' para um …

4
std :: auto_ptr para std :: unique_ptr
Com a chegada do novo padrão (e peças já disponíveis em alguns compiladores), o novo tipo std::unique_ptrdeve ser um substituto std::auto_ptr. O uso deles se sobrepõe exatamente (para que eu possa localizar / substituir globalmente no meu código (não que eu faria isso, mas se o fizesse)) ou devo estar …





7
Como posso passar std :: unique_ptr para uma função
Como posso passar um std::unique_ptrem uma função? Digamos que eu tenha a seguinte aula: class A { public: A(int val) { _val = val; } int GetVal() { return _val; } private: int _val; }; O seguinte não compila: void MyFunc(unique_ptr<A> arg) { cout << arg->GetVal() << endl; } int …
101 c++  c++11  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.