스토리텔링 개발자

[Effective C++] 55. 부스트 라이브러리 본문

개발/Effective C++

[Effective C++] 55. 부스트 라이브러리

김디트 2024. 7. 30. 10:46
728x90

항목 55 : Boo자유친! 부스트를 늘 여러분 가까이에.

 

 

 

부스트란?
  • C++ 개발자들의 단체이자 무료 다운로드가 가능한 C++ 라이브러리 집합을 동시에 일컫는 고유명사이다.
  • 차별점
    • 부스트는 C++ 표준화 위원회와 밀접하고 영향력 있는 밀월관계가 있다.
      • 표준 C++에 추가될 수 있는 기능들의 시험장소라는 의미이다.
    • 라이브러리 승인 과정이 까다롭다.

 

 

 

라이브러리 승인 과정 (공개 동료 심사(public peer review))
  1. 사전 심사(perliminary examination)
  2. 부스트 최소 요구사항 만족 여부 확인
    • 컴파일 되는 컴파일러가 최소 두개 이상일 것.
    • 라이센스가 적절한지 여부
  3. 공식 심사
    • 설계와 구현이 얼마나 우수한가
    • 다른 컴파일러와 운영체제들에 맞추어 이식할 수 있는 코드인가
    • 대상 사용자들(특정 분야 종사자들)에게 쓸모 있는 라이브러리인가
    • 문서화가 명료하고, 완전하고, 정확한가
  4. 의견 취합 후 결정
    • 승인(accepted)
    • 조건부 승인(conditionally accepted)
    • 기각(rejected)
  • 배포되는 라이브러리로 승인되려면 최소한 두 번 이상의 공개 심사는 기본이다.

 

 

 

부스트 라이브러리 범주
  • 문자열 및 텍스트 처리
    • 타입 안정성을 갖춘 printf 비슷한 서식화 기능
    • 정규 표현식 (항목 54 참조)
    • 토근화
    • 구문 분석
  • 컨테이너
    • STL 양식의 인터페이스를 제공하는 고정 크기 배열 (항목 54 참조)
    • 가변 크기 비트세트
    • 다차원 배열
  • 함수 객체 및 고차(higher-order) 프로그래밍
    • 람다(Lambda) 라이브러리
  • 일반화 프로그래밍
    • 특성정보(traits) 클래스 (항목 47 참조)
  • 템플릿 메타 프로그래밍(TMP) (항목 48 참조)
    • 컴파일 타임 단정문
    • 부스트 MPL 라이브러리
  • 수학 및 수치 조작
    • 유리수
    • 사원수(quaternion)
    • 8원수(octonion)
    • 최대 공약수, 최소 공배수
    • 난수
  • 정확성 유지 및 테스트
    • 암시적 템플릿 인터페이스 (항목 41 참조)
    • 테스트 우선 프로그래밍
  • 자료구조
    • 타입 안전성을 갖춘 공용체('어떤' 타입도 담을 수 있는 자료구조)
    • Tuple 라이브러리(항목 54 참조)
  • 타 언어와 연동 지원
    • C++과 파이썬의 브릿지 라이브러리
  • 메모리
  • 기타
    • CRC 점검
    • 날짜 및 시간 조작
    • 파일 시스템 횡단
728x90
Comments