Pytania otagowane jako smart-pointers

Abstrakcyjny typ danych, który symuluje wskaźnik, jednocześnie zapewniając dodatkowe funkcje, takie jak automatyczne wyrzucanie elementów bezużytecznych lub sprawdzanie granic



4
Jakiego wskaźnika używam, kiedy?
Ok, więc ostatnim razem, gdy pisałem C ++ na życie, std::auto_ptrbyło wszystko, co było dostępne w standardowej wersji lib, i to boost::shared_ptrbyła wściekłość. Nigdy tak naprawdę nie przyglądałem się innym dostępnym rodzajom inteligentnych wskaźników. Rozumiem, że C ++ 11 zapewnia teraz niektóre typy ulepszeń, ale nie wszystkie. Czy ktoś ma …

4
wyjaśniono inteligentne wskaźniki (boost)
Jaka jest różnica między następującym zestawem wskaźników? Kiedy w ogóle używasz każdego wskaźnika w kodzie produkcyjnym? Przykłady będą mile widziane! scoped_ptr shared_ptr weak_ptr intrusive_ptr Czy używasz wzmocnienia w kodzie produkcyjnym?

2
Dlaczego nie mogę wcisnąć_powrotu unikatowej_ptr do wektora?
Co jest nie tak z tym programem? #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; } Błąd: 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 __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const …


4
std :: auto_ptr na std :: unique_ptr
Wraz z nadejściem nowego standardu (i części już dostępnych w niektórych kompilatorach) nowy typ std::unique_ptrma być zamiennikiem std::auto_ptr. Czy ich użycie dokładnie się pokrywa (więc mogę dokonać globalnego wyszukiwania / zamiany w moim kodzie (nie żebym to zrobił, ale gdybym to zrobił)), czy powinienem być świadomy pewnych różnic, które nie …

2
Używanie inteligentnych wskaźników dla członków klasy
Mam problem ze zrozumieniem użycia inteligentnych wskaźników jako członków klasy w C ++ 11. Dużo czytałem o inteligentnych wskazówkach i myślę, że rozumiem, jak unique_ptri shared_ptr/ weak_ptrdziała ogólnie. To, czego nie rozumiem, to prawdziwe użycie. Wygląda na to, że wszyscy zalecają używanie unique_ptrgo prawie cały czas. Ale jak bym zaimplementował …


6
Dlaczego miałbym std :: przenieść std :: shared_ptr?
Przeglądałem kod źródłowy Clang i znalazłem ten fragment: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } Dlaczego miałbym chcieć ?std::movestd::shared_ptr Czy jest jakiś sens przenoszenia własności do udostępnionego zasobu? Dlaczego nie miałbym po prostu tego zrobić? void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = Value; }


3
Jakie implementacje C ++ Smart Pointer są dostępne?
Porównania, zalety, wady i kiedy używać? Jest to spin-off z wątku usuwania śmieci, w którym to, co uważałem za prostą odpowiedź, wygenerowało wiele komentarzy na temat niektórych konkretnych implementacji inteligentnych wskaźników, więc wydawało się, że warto rozpocząć nowy post. Ostatecznie pytanie brzmi, jakie są różne implementacje inteligentnych wskaźników w C …


4
Gdzie jest shared_ptr?
Jestem bardzo sfrustrowany po kilku godzinach prób znalezienia lokalizacji shared_ptr. Żaden z przykładów, które widzę, nie pokazuje pełnego kodu zawierającego nagłówki shared_ptr(i działające). Po prostu stwierdzając std, tr1i <memory>nie pomaga w ogóle! Pobrałem doładowania i wszystko, ale nadal się nie pojawiają! Czy ktoś może mi pomóc, podając dokładnie, gdzie go …

5
Ile kosztuje narzut inteligentnych wskaźników w porównaniu do zwykłych wskaźników w C ++?
Ile kosztuje narzut inteligentnych wskaźników w porównaniu do zwykłych wskaźników w C ++ 11? Innymi słowy, czy mój kod będzie wolniejszy, jeśli użyję inteligentnych wskaźników, a jeśli tak, to o ile wolniej? W szczególności pytam o C ++ 11 std::shared_ptri std::unique_ptr. Oczywiście rzeczy zepchnięte w dół będą większe (przynajmniej tak …

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.