의 장점은 무엇을 사용하여 C++라이브러리를 높일?[마감]

StackOverflow https://stackoverflow.com/questions/125580

  •  02-07-2019
  •  | 
  •  

문제

그래서,저는 읽기를 통해 나타나고 그것은 향상 라이브러리를 사용에서 많이 연습하지 않는(내에서 쇼핑하지만).왜 그렇습니까?그리고 어떻게 그렇게 무엇입니까?

도움이 되었습니까?

해결책

Boost 을 사용하므로 광범위하게 하기 때문에:

  • 그것은 오픈 소스와 동료-검토한다.
  • 제공하는 넓은 범위 플랫폼 독립적하는 기능을 STL 놓쳤다.
  • 그것을 보완하여 STL 보다는 오히려합니다.
  • 의 많은 향상이 개발자는 C++표준위원회.사실,의 많은 부분 향상 포함된 것으로 간주에는 다음 C++표준 라이브러리입니다.
  • 그것은 문서화된다.
  • 라이선스 허용에 포함 오픈 소스와 폐쇄 소스 프로젝트입니다.
  • 그것의 기능은 없 일반적으로 서로에 의존할 수 있도록 링크를 부분만을 필요합니다.[Luc Hermitte의 코멘트]

다른 팁

홈페이지에서 :

"... 세계에서 가장 높고 전문적으로 설계된 C ++ 라이브러리 프로젝트 중 하나입니다." - Herb Sutter 및 Andrei Alexandrescu, C ++ 코딩 표준

"항목 55 : 부스트에 익숙해 지십시오." - Scott Meyers, 효과적인 C ++, 3rd ed.

"대부분의 프로그래머를위한 명백한 솔루션은 필요한 서비스와 독립적 인 우아하고 효율적인 플랫폼을 제공하는 라이브러리를 사용하는 것입니다. 예제는 부스트입니다 ..." - Bjarne Stroustrup, 추상화, 라이브러리 및 C ++의 효율성.

따라서 널리 사용되고 허용되는 라이브러리의 범위이지만 왜 필요한가요?

필요한 경우 :

  • 성과선
  • 기능 바인딩
  • 람다 기능
  • 단위 테스트
  • 똑똑한 포인터
  • 비정치, 선택 사항
  • 직렬화
  • 일반 날짜
  • 휴대용 파일 시스템
  • 원형 버퍼
  • utils를 구성하십시오
  • 일반 이미지 라이브러리
  • TR1
  • 스레드
  • ublas

그리고 C ++로 코딩 할 때 후원.

기 때문에 그들은 많은 없는 것들을 표준 라이브러리는,그래서 그들 중 일부는 점점에 포함된 표준입니다.

들이 사람들 은 거짓말을하지 않:

해야하는 이유는 조직 부스트를 사용하는?

In a word,생산성을 높입니다.의 사용 고품질 라이브러리 같은 향상 속도로 처음 개발,결과 적은 버그를 감소 발-의 바퀴,및처 장기적인 유지보수 비용이 절감됩니다.이 일러가 될 경향이 있 de 사실상 또는 법적 표준,많 프로그래머는 이미 친숙한 니다.

십일러 에 포함된 C++표준 라이브러리 TR1,그래서 예정이 나중에는 풀 표준화.더 향상 라이브러리 에 대한 파이프라인 TR2.용 을 향상 라이브러리 제공하는 조직 헤드에서 시작을 채택하는 새로운 기술입니다.

많은 조직에서 이미 사용하여 프로그램 으로 구현된 부스트,어도비 Acrobat Reader7.0.

몇 가지 부스트 클래스는 매우 유용하지만 (shared_ptr), 나는 그들이 특성과 개념으로 약간의 견해를 냈다고 생각합니다. 컴파일 시간과 거대한 이진 크기는 템플릿이 많은 코드와 마찬가지로 부스트로 완전히 미쳤습니다. 균형이 있어야합니다. Boost가 그것을 찾았는지 잘 모르겠습니다.

C ++ 프로그래밍에 대한보다 현대적인 접근 방식을 허용하는 라이브러리를 추가합니다.

내 경험에 따르면 많은 C ++ 프로그래머는 실제로 1990 년대 초 C ++ 프로그래머이며 C ++ 클래스를 거의 쓰지 않고 제네릭을 많이 사용하지 않습니다. 보다 현대적인 접근 방식은 제네릭을 사용하여 동적 언어와 비슷한 방식으로 소프트웨어를 함께 구성하지만 결국 유형 확인 / 성능을 얻을 수 있습니다. 보는 것은 조금 추악합니다. 그러나 구문 문제를 극복하면 정말 좋습니다. 부스트는 물건을 쉽게 구성하는 데 필요한 많은 도구를 제공합니다. 스마트 포인터, 기능, 람다, 바인딩 등. 그러면 네트워킹, 재선 등과 같은 것들을 제공하기 위해 C ++를 작성하는이 새로운 방법을 활용하는 부스트 라이브러리가 있습니다.

루프 또는 핸드 롤링 기능 개체에 대해 많은 글을 쓰거나 메모리 관리를하는 경우 반드시 부스트를 확인해야합니다.

Boost는 많은 C ++ 프로젝트에 공통적 인 라이브러리 채우기가 필요합니다. 일반적으로 부스트 구현 코드의 가독성에 대한 정확성, 재사용 성, 휴대 성, 런타임 성능 및 공간 효율성을 우선시하거나 때로는 시간을 컴파일합니다. 그들은 완전한 고급 기능 요구 사항 (예 : 응용 프로그램 프레임 워크)을 다루지 않는 경향이 있으며 대신 응용 프로그램 설계를 지시하거나 지배하지 않고보다 자유롭게 결합 할 수있는 빌딩 블록을 제공합니다.

부스트 사용을 고려해야 할 중요한 이유는 다음과 같습니다.

  • 대부분의 라이브러리는 매우 잘 테스트되고 설계되었습니다. 일반적으로 동일한 문제 공간에있는 홈 브루 솔루션을 가진 사람들과 비교하여 일부 우수한 프로그래머에 의해 합리적으로 사운드 검토를 받고 광범위한 실제 피드백을 수집하기에 충분히 널리 사용됩니다.
  • 이미 작성되었고 솔루션은 아마도 그렇지 않을 것입니다
  • 꽤 휴대가 가능합니다 (그러나 라이브러리마다 다릅니다)
  • C ++ 커뮤니티의 더 많은 사람들이 코드를 도와주는 데 헤드 스타트를 가질 것입니다.
  • 부스트는 종종 C ++ 표준에 대한 소개를위한 입증 된 근거이므로 향후 표준과 호환되도록 코드를 다시 작성하는 작업이 적을 수 있습니다.
  • 커뮤니티 수요로 인해 컴파일러 공급 업체
  • Boost Libraries에 대한 친숙 함은 다른 프로젝트, 아마도 다른 회사에서 유사한 작업을 수행하는 데 도움이됩니다.

라이브러리는 여기에 한 줄에 설명되어 있습니다. http://www.boost.org/doc/libs/.

C ++ 표준 라이브러리가 전부는 아니기 때문입니다 완벽한.

무엇이든 Kevlin Henney의 참여는 주목해야합니다.

부스트 기본적으로 기본적으로 표준이 될 수있는 시놉시스는 모든 동료 검토 및 사용량을 얻는 것 외에도 의존성에 대한 좋은 거래를 확신 할 수 있습니다.

그러나 대부분의 상점은 외부 의존성이기 때문에 부스트를 사용하지 않습니다. 그리고 실제로 외부 의존성을 줄이는 것도 매우 중요합니다.

부스트는 C ++ 종류의 .NET 프레임 워크와 같은 C#이지만 더 작은 규모 일 수도 있습니다.

파일 시스템 라이브러리를 조금만 사용하고 Boost :: shared_ptr은 꽤 끔찍합니다. 나는 그것이 다른 일을한다고 들었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top