«smart-pointers» 태그된 질문

자동 가비지 수집 또는 경계 검사와 같은 추가 기능을 제공하면서 포인터를 시뮬레이션하는 추상 데이터 유형



4
언제 어떤 종류의 포인터를 사용합니까?
좋아, 내가 생계를 위해 C ++을 마지막으로 썼을 std::auto_ptr때 std lib가 사용 가능한 boost::shared_ptr모든 것이었고 모든 분노였습니다. 나는 다른 스마트 포인터 유형 부스트를 실제로 보지 않았다. C ++ 11은 현재 일부 유형의 부스트가 제공되었지만 모든 유형을 제공하지는 않습니다. 그렇다면 어떤 스마트 포인터를 언제 사용할지 결정하는 간단한 알고리즘이 있습니까? 벙어리 포인터 …

4
스마트 포인터 (부스트) 설명
다음 포인터 세트의 차이점은 무엇입니까? 프로덕션 코드에서 각 포인터를 언제 사용합니까? 예를 들어 주시면 감사하겠습니다! scoped_ptr shared_ptr weak_ptr intrusive_ptr 프로덕션 코드에서 부스트를 사용합니까?

2
unique_ptr을 벡터로 푸시 백 할 수없는 이유는 무엇입니까?
이 프로그램에 어떤 문제가 있습니까? #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; } 오류: 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 _Tp&) [with …


4
std :: auto_ptr에서 std :: unique_ptr로
새로운 표준이 등장함에 따라 (그리고 일부 컴파일러에서 이미 사용 가능한 부분), 새로운 유형 std::unique_ptr은의 대체품으로 간주됩니다 std::auto_ptr. 사용법이 정확히 겹치므로 (내 코드에서 전역 찾기 / 바꾸기를 수행 할 수는 있지만 (그렇지 않은 경우) 그렇지 않은 경우) 설명서를 읽을 때 명확하지 않은 몇 가지 차이점을 알고 있어야합니까? 또한 그것이 직접 대체라면 …

2
반원을위한 스마트 포인터 사용
C ++ 11의 클래스 멤버로 스마트 포인터의 사용법을 이해하는 데 문제가 있습니다. 나는 스마트 포인터에 대해 많이 읽었으며 나는 방법을 이해하는 것 같아요 unique_ptr및 shared_ptr/ weak_ptr일반적으로 작업을. 내가 이해하지 못하는 것은 실제 사용법입니다. 모든 사람들 unique_ptr이 거의 항상가는 길로 사용 하는 것이 좋습니다 . 그러나 어떻게 이런 식으로 구현할 것입니까? …

8
C ++ 라이브러리 및 프레임 워크가 스마트 포인터를 사용하지 않는 이유는 무엇입니까?
필자는 원시 포인터를 거의 사용해서는 안된다는 기사를 몇 개 읽었습니다. 대신 범위 또는 공유 포인터에 관계없이 항상 스마트 포인터 내부에 래핑되어야합니다. 그러나 Qt, wxWidgets 및 Boost와 같은 라이브러리와 같은 프레임 워크는 마치 전혀 사용하지 않는 것처럼 스마트 포인터를 반환하거나 기대하지 않습니다. 대신 원시 포인터를 반환하거나 기대합니다. 그 이유가 있습니까? 공개 …

6
왜 std :: move std :: shared_ptr을 사용합니까?
Clang 소스 코드를 살펴본 결과이 스 니펫을 발견했습니다. void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } 왜 내가 원하는 것 ?std::movestd::shared_ptr 공유 리소스에 대한 소유권을 이전 할 수 있습니까? 왜 대신 대신이 작업을 수행하지 않습니까? void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = Value; }


3
어떤 C ++ 스마트 포인터 구현을 사용할 수 있습니까?
비교, 장점, 단점 및 사용시기 이것은 가비지 컬렉션 스레드 에서 파생 된 것으로, 간단한 답변이라고 생각한 것이 특정 스마트 포인터 구현에 대한 많은 의견을 생성하여 새 게시물을 시작할 가치가있는 것처럼 보였습니다. 궁극적으로 질문은 C ++에서 스마트 포인터의 다양한 구현이 무엇이며 어떻게 비교합니까? 단순한 장단점 또는 예외와 그렇지 않으면 작동해야한다고 생각할 …

11
스마트 포인터 : 개체 소유자는 누구입니까? [닫은]
여기서 무엇을 요청하는지 말하기는 어렵습니다. 이 질문은 모호하고, 모호하며, 불완전하고, 지나치게 광범위하거나, 수사적이며 현재 형식으로는 합리적으로 대답 할 수 없습니다. 다시 열 수 있도록이 질문을 명확히하는 데 도움이 필요 하면 도움말 센터를 방문하세요 . 휴일 팔년 전에 . C ++는 메모리 소유권에 관한 것 입니다. 즉 소유권 의미론 이라고도 합니다. …

4
shared_ptr은 어디에 있습니까?
나는 shared_ptr이 어디에 있는지 찾으려고 몇 시간 후에 지금 너무 실망합니다. 내가 보는 예제는 헤더를 포함하는 완전한 코드를 보여주지 shared_ptr않습니다. 간단하게 진술 std, tr1그리고 <memory>전혀 도움이되지 않는다! 부스트를 모두 다운로드했지만 여전히 표시되지 않습니다! 누군가 그것을 찾을 수있는 정확한 위치를 말함으로써 나를 도울 수 있습니까? 답답함을 풀어 주셔서 감사합니다! 편집 : …

5
C ++의 일반 포인터와 비교하여 스마트 포인터의 오버 헤드는 얼마입니까?
C ++ 11의 일반 포인터에 비해 스마트 포인터의 오버 헤드는 얼마입니까? 즉, 스마트 포인터를 사용하면 코드가 느려질까요? 그렇다면 얼마나 느려질까요? 특히 C ++ 11 std::shared_ptr및 std::unique_ptr. 분명히 스택 아래로 밀려 난 물건은 더 커질 것입니다 (적어도 나는 그렇게 생각합니다). 내 성능에 영향을 미치나요? 예를 들어 일반 포인터 대신 함수에서 스마트 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.