std :: unique_ptr est un pointeur intelligent qui conserve la propriété exclusive d'un objet via un pointeur. unique_ptr n'est ni copiable ni assignable par copie, deux instances de unique_ptr ne peuvent pas gérer le même objet.
J'essaie de comprendre comment std::unique_ptrfonctionne et pour cela j'ai trouvé ce document. L'auteur part de l'exemple suivant: #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); // …
J'essaie de compiler le programme de pool de threads suivant publié sur la revue de code pour le tester. /codereview/55100/platform-independant-thread-pool-v4 Mais je reçois les erreurs 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)); …
Je regarde le discours de Chandler Carruth dans CppCon 2019: Il n'y a pas d'abstractions à coût nul dans ce document, il donne l'exemple de la façon dont il a été surpris par la quantité de frais généraux que vous encourez en utilisant un std::unique_ptr<int>sur un int*; ce segment commence …
J'ai écrit le code suivant qui utilise unique_ptr<Derived>où un unique_ptr<Base>est attendu 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) …
Obtenir un à void *partir d'une fonction dans CI ferait quelque chose comme ça (exemple très basique): void *get_ptr(size_t size) { void *ptr = malloc(size); return ptr; } Comment obtenir le même résultat lors de l'utilisation std::unique_ptr<>?
J'ai affaire à du code qui n'a pas été écrit par moi. J'ai cette déclaration: // p is type of std::unique_ptr<uint8_t[]> if (p < 0) { /* throw an exception */ } Alors qu'est-ce que cela p < 0signifie dans ce contexte? Sur la page de documentation , je pense …
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.