Pytania otagowane jako unique-ptr

std :: unique_ptr to inteligentny wskaźnik, który zachowuje wyłączną własność obiektu za pośrednictwem wskaźnika. unique_ptr nie jest kopiowalny ani przypisywany do kopiowania, dwie instancje unique_ptr nie mogą zarządzać tym samym obiektem.

6
Po co używać std :: make_unique w C ++ 17?
O ile rozumiem, wprowadzono C ++ 14 std::make_unique, ponieważ w wyniku nieokreślenia kolejności oceny parametrów było to niebezpieczne: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Wyjaśnienie: jeśli ocena najpierw przydzieli pamięć dla surowego wskaźnika, a następnie wywoła g()i wyjątek zostanie zgłoszony przed std::unique_ptrkonstrukcją, wtedy nastąpi wyciek pamięci). Dzwonienie std::make_uniquebyło sposobem na …
96 c++  c++17  unique-ptr 

4
Jak zadeklarować std :: unique_ptr i do czego służy?
Próbuję zrozumieć, jak std::unique_ptrdziała i do tego znalazłem ten dokument. Autor zaczyna od następującego przykładu: #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 * …
95 c++  pointers  std  unique-ptr 

6
błąd :: make_unique nie jest członkiem „std”
Próbuję skompilować następujący program puli wątków opublikowany w przeglądzie kodu, aby go przetestować. /codereview/55100/platform-independant-thread-pool-v4 Ale otrzymuję błędy 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: error: expected primary-expression before ‘>’ token …

4
Dlaczego T * może zostać przekazany do rejestru, a unikalny_ptr <T> nie może?
Oglądam przemówienie Chandlera Carrutha w CppCon 2019: Brak abstrakcyjnych kosztów zerowych podaje w nim przykład tego, jak był zaskoczony tym, ile ponosisz koszty ogólne, używając std::unique_ptr&lt;int&gt;ponad int*; ten segment zaczyna się mniej więcej w punkcie czasowym 17:25. Możesz rzucić okiem na wyniki kompilacji jego przykładowej pary fragmentów (godbolt.org) - aby …

4
Jak przekazać std :: unique_ptr?
Mam pierwszą próbę użycia C ++ 11 unique_ptr; Zastępuję polimorficzny surowy wskaźnik wewnątrz mojego projektu, który jest własnością jednej klasy, ale jest często przekazywany. Kiedyś miałem takie funkcje, jak: bool func(BaseClass* ptr, int other_arg) { bool val; // plain ordinary function that does something... return val; } Ale szybko zdałem …
85 c++  c++11  unique-ptr 




3
unique_ptr <0 LUB co robi mniej niż operator?
Mam do czynienia z kodem, który nie został napisany przeze mnie. Mam to oświadczenie: // p is type of std::unique_ptr&lt;uint8_t[]&gt; if (p &lt; 0) { /* throw an exception */ } Co więc p &lt; 0oznacza w tym kontekście? Na stronie z dokumentacją uważam, że mój przypadek dotyczy tego 16) …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.