2011-02-04 4 views
25

<memory> 파일에있는 boost::shared_ptrstd::shared_ptr 사이에 차이가 있는지 궁금합니다.표준 <memory> 파일에서 boost :: shared_ptr과 std :: shared_ptr의 차이

+0

이것은 구현에 따라 달라질 수 있습니다. – robert

+0

@robert 서로 바꿔서 사용할 수 있습니까? 이 구현하려고하는 http://stackoverflow.com/questions/3559412/how-to-store-different-data-types-in-one-list-c/3560884#3560884 – Pepe

+1

@ P.R. -'std :: shared_ptr'는'tr1 :: shared_ptr'의 C++ 0x 형식이고 부스트의'shared_ptr'는 똑같이 행동해야합니다 : http://stackoverflow.com/questions/3831572/differences-between-tr1shared- ptr-and-boostshared-ptr – birryree

답변

19

std::shared_ptrtr1::shared_ptr의 C++ 0x 형식이며 부스트의 boost::shared_ptr은 동일해야합니다.

그러나 std::shared_ptr는 C + +0 표준을 준수 구현에서,/다음 링크에 설명 된대로 shared_ptr 클래스에 대한 자세한 편의 동작을 할 수 있어야합니다

shared_ptr은 일반 C++ 데이터 포인터처럼 가능한 많은 역할을하는 참조 카운트 포인터입니다. TR1 구현에는 앨리어싱 및 포인터 산술과 같은 특정 포인터 기능이 없지만 C++ 0x 버전은 이러한 기능을 추가합니다. 빠른 피상적 눈에서

  • November 2010 Working Draft of C++0x
  • 비록

      , 나는 shared_ptr 유형에 operator+와 유사한 산술 연산을 볼 수 없습니다.

    관련 문제