boost 라이브러리 예제

share_ptr을 사용하여 해결되는 주요 문제는 공유되는 리소스를 삭제하는 정확한 시간을 아는 것입니다. 다음 예제에는 A와 B의 두 클래스가 있습니다. 클래스는 int의 인스턴스를 공유하고 shared_ptr 저장합니다. 각 클래스의 인스턴스를 만들 때 shared_ptr pTemp 생성자에 전달 됩니다. 즉, 세 shared_ptrs는 이제 int의 동일한 인스턴스를 참조합니다. 포인터를 사용하여 int의 공유를 달성했다면 각 클래스는 언제 삭제해야 하는지 파악하는 데 어려움을 겪었을 것입니다. 이 예제에서 main()이 끝날 때까지 참조 수는 3입니다. 모든 포인터가 범위를 벗어나면 참조 수가 0에 도달하여 int의 공유 인스턴스를 삭제할 수 있습니다. 부스트는 STL의 많은 기능에 대한 훌륭한 확장 또는 대안역할을 할 수 있지만. 그러나 함수 개체와 고차 프로그래밍인 여러 라이브러리가 있습니다. TR1의 기능의 기초로 사용됩니다. 이러한 라이브러리 중 하나는 Lambda 라이브러리이므로 즉시 함수 개체를 쉽게 만들 수 있습니다.

이 예제에서는 두 개체가 내부적으로 서로 참조하는 상황인 순환 참조 데이터에 weak_ptrs의 사용을 보여 주었습니다. 다음은 컴파일 중에 계수를 계산하는 예입니다. 재귀 템플릿 인스턴스화를 통해 루핑을 보여 줍니다. 또한 템플릿 메타프로그래밍(TMP)에서 변수를 만들고 사용하는 한 가지 방법을 보여 줍니다: C++ 부스트 라이브러리는 널리 유용한 라이브러리입니다. 이것은 다른 섹션에 사용됩니다. 그것은 응용 프로그램의 큰 도메인을 가지고 있습니다. 예를 들어 부스트를 사용하면 C++에서 264와 같은 큰 숫자를 사용할 수 있습니다. 최신 부스트 C++ 라이브러리(이 글에서 버전 1.65.0)를 다운로드하고 압축을 풀수 있습니다. 하드 드라이브의 어느 곳에서나 boost_1_65_0.zip 파일의 압축을 풀 수 있습니다. 이 PCDocuments 안에 이 프로젝트와 연결된 모든 라이브러리를 보관하는 디렉토리라는 라이브러리를 만들었습니다. 중요: 간단 하 게 것 들을 유지 하기 위해, 난 또한이 PCDocuments라이브러리 폴더에 모든 라이브러리를 배치 합니다 가정 합니다. 예를 들어 부스트 라이브러리의 압축을 풀면 이 PC문서라이브러리boost_1_65_0이라는 디렉토리가 생겼습니다.

(그렇지 않으면 압축을 풀려면 몇 시간이 걸릴 수 있으므로 다운로드 한 zip 파일의 압축을 풀려면 프로그램 7-zip을 사용하는 것이 좋습니다.) 효율성과 유연성을 보장하기 위해 Boost는 템플릿을 광범위하게 사용합니다. Boost는 C++의 일반 프로그래밍 및 메타프로그래밍에 대한 광범위한 작업 과 연구의 원천이었습니다. 또 다른 목표는 “기존 사례”를 설정하고 Boost 라이브러리가 최종 표준화에 적합하도록 참조 구현을 제공하는 것입니다. 향후 C++ 표준 의 일부가 되기 위한 단계로 C++ 표준 위원회의 향후 C++ 표준 라이브러리 기술 보고서에 10개의 부스트 라이브러리가 포함됩니다. 부스트는 벡터와 행렬에 대한 BLAS 지원과 uBLAS 선형 대수 라이브러리 (빠른 대체 라이브러리는 아르마딜로와 에이겐을 포함)를 포함한다. uBlas선형 대수 작업의 넓은 범위를 지원 하 고 ATLAS, BLAS 및 LAPACK 등 널리 사용 되는 일부 숫자 라이브러리에 바인딩을 가지고 있습니다. Boost는 조직이며, 휴대용, 동료 평가, 오픈 소스 C ++ 라이브러리를 제공합니다. 대부분의 C++ 표준 위원회의 라이브러리 기술 보고서 1(TR1) 기능은 Boost에서 수행된 작업을 기반으로 하며 컴파일러 공급업체가 C++ 라이브러리 배포판에 TR1을 포함할 때까지 Boost 웹 사이트는 TR1을 찾는 개발자의 첫 번째 중지 상태로 유지됩니다. 구현.

Comments are closed.