반응형
boost :: shared_ptr이있는 static_cast?
static_castwith에 해당하는 것은 무엇입니까 boost::shared_ptr?
즉, 다음을 어떻게 다시 작성해야합니까?
Base* b = new Derived();
Derived* d = static_cast<Derived*>(b);
사용할 때 shared_ptr?
boost::shared_ptr<Base> b(new Derived());
boost::shared_ptr<Derived> d = ???
사용 boost::static_pointer_cast:
boost::shared_ptr<Base> b(new Derived());
boost::shared_ptr<Derived> d = boost::static_pointer_cast<Derived>(b);
이 스마트 포인터 세 캐스트 운영자는 다음과 같습니다 static_pointer_cast, dynamic_pointer_cast그리고 const_pointer_cast. 네임 스페이스 boost(에서 제공 <boost/shared_ptr.hpp>) 또는 네임 스페이스 std::tr1(Boost 또는 컴파일러의 TR1 구현에서 제공)에 있습니다.
주석으로 : Derived가 실제로 Base에서 파생 된 경우 정적 캐스트가 아닌 dynamic_pointer_cast를 사용해야합니다. 시스템은 캐스트가 정확하지 않은 경우를 감지 할 수 있습니다.
Boost에서 제공하는 캐스팅 연산자의 수와 TR1의 구현에 차이가 있다는 점을 언급 할 가치가 있습니다.
TR1은 세 번째 연산자 const_pointer_cast ()를 정의하지 않습니다.
참고 URL : https://stackoverflow.com/questions/624854/static-cast-with-boostshared-ptr
반응형
'IT TIP' 카테고리의 다른 글
| 업데이트 된 Docker 이미지를 Amazon ECS 작업에 배포하려면 어떻게해야합니까? (0) | 2020.10.26 |
|---|---|
| Windows / C # 개발을위한 임베드 가능한 Webkit 구성 요소가 있습니까? (0) | 2020.10.26 |
| C # 언어 이름의 유래 (0) | 2020.10.26 |
| WeakHashMap은 있지만 WeakSet은없는 이유는 무엇입니까? (0) | 2020.10.26 |
| Chrome JavaScript 디버깅-페이지 새로 고침 또는 코드를 통한 중단 사이에 중단 점을 저장하는 방법은 무엇입니까? (0) | 2020.10.26 |