2013-08-13 1 views
0

여기에 ""과 같이 boost 클래스를 많이 사용하는 "오래된"C++ 프로젝트가 있습니다. 이제 프로젝트를 C++ 11로 마이그레이션하려고합니다.부스트에서 표준화로 마이그레이션

내 질문 :
1. 캐스팅 운영자 std으로 전환해야합니까?
std으로 마이그레이션 할 때의 이점은 무엇입니까?

+5

"캐스팅 운영자"란 정확히 무엇을 의미합니까? 'shared_ptr'는 클래스입니다. 또한 표준 라이브러리를 사용하면 얻을 수있는 이점 (즉, 이식성, 사용 편의성 (Boost를 설치할 필요가 없음) 등)이 분명해야합니다. – filmor

+0

당신 말이 맞아요. 아마도 나는 잘못된 용어를 사용했을 것입니다. 나는'클래스'를 의미했다. 필자는 이식성에 동의하지만 어쨌든 우리가 다른 것들을 위해 사용하기 때문에 boost를 포함시켜야합니다. – MBZ

답변

0

아니요, 부스트에서 처음 구현 된 기능의 표준 버전을 사용해야하는 것은 아닙니다. 부스트에 대한 의존성을 제거 할 수있는 경우를 제외하고는 boost 버전의 구현에 비해 std 버전을 사용하는 데 큰 이점이 없습니다.

부스트 기능을 채택하는 과정에서 표준 버전이 개선되었습니다. 나는 그 개선이 어느 정도까지 부스트에 다시 적용되었는지 확신 할 수 없다. 대부분은 있지만, 아마도 전부는 아니었을 가능성이 큽니다.

다양한 표준 구현을 사용하면 한 구현의 특성에 의존하는 버그가 제거 될 수 있습니다.

0

이전 주자가 캐스팅 운영자에게 스마트 포인터를 의미한다는 것을 알았습니다. 이 경우 전환은 간단해야합니다. 다른 경우 boost :: thread에서 std :: thread로 마이그레이션 할 때와 같이 경로가 너무 명확하지 않습니다. 부스트 : : 스레드와 표준 : :의 차이에 확인 this post by Anthony Williams

또한

, this one on boost::bind vs std::bind

가장 큰 장점은 지원과 후원을 배포해야 할 필요가없는 것입니다 스레드. (참고 : 지원이가는 한, 메일 링리스트는 상용 컴파일러보다 더 빨리 응답 할 것입니다.)

관련 문제