std :: unique_ptr è un puntatore intelligente che mantiene la proprietà esclusiva di un oggetto tramite un puntatore. unique_ptr non è copiabile o assegnabile tramite copia, due istanze di unique_ptr non possono gestire lo stesso oggetto.
Cerco di capire come std::unique_ptrfunziona e per questo ho trovato questo documento. L'autore parte dal seguente esempio: #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); // …
Sto cercando di compilare il seguente programma di pool di thread pubblicato sulla revisione del codice per testarlo. /codereview/55100/platform-independant-thread-pool-v4 Ma sto ottenendo gli errori 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)); ^ …
Sto guardando il discorso di Chandler Carruth in CppCon 2019: Non ci sono astrazioni a costo zero in esso, fornisce l'esempio di come è stato sorpreso da quanto sovraccarico si incorre usando un std::unique_ptr<int>over an int*; quel segmento inizia all'incirca alle 17:25. Puoi dare un'occhiata ai risultati della compilazione del …
Ho scritto il seguente codice che utilizza unique_ptr<Derived>dove unique_ptr<Base>è previsto un class Base { int i; public: Base( int i ) : i(i) {} int getI() const { return i; } }; class Derived : public Base { float f; public: Derived( int i, float f ) : Base(i), f(f) …
Per ottenere un void *da una funzione in CI farebbe qualcosa del genere (esempio molto semplice): void *get_ptr(size_t size) { void *ptr = malloc(size); return ptr; } Come posso ottenere lo stesso risultato durante l'utilizzo std::unique_ptr<>?
Ho a che fare con un codice che non è stato scritto da me. Ho questa affermazione: // p is type of std::unique_ptr<uint8_t[]> if (p < 0) { /* throw an exception */ } Quindi cosa p < 0significa in questo contesto? Sulla pagina di documentazione , credo che il …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.