boost 사용 예제

avatar
| Uncategorized

일부 컴파일러에는 128비트 부동 체 또는 정수와 같은 확장 된 산술 형식에 대 한 지원이 있습니다. 부스트를 사용 하 여 그들을 사용 하는 방법에 대 한 빠른 눈을 보자. 모든 소스 코드는 부스트 소프트웨어 라이센스 버전 1.0에 따라 배포됩니다. (첨부 파일 LICENSE_1_0.txt 를 참조하거나 http://www.boost.org/LICENSE_1_0.txt 복사) 우리는 효율적으로 경쟁 프로그래밍에서이 라이브러리를 사용할 수 있지만,이 전에 우리는 당신의 온라인 판사가 부스트를 지원해야합니다 있는지 확인해야합니다. 다음은 사용할 수있는 몇 가지 멋진 트릭입니다 :- 1 년에 여러 번, 우리는 값 의 쌍을 저장하고 인덱스 할 수있는 무언가가 필요합니다. 또한 두 번째 를 사용하여 쌍의 첫 번째 부분을 얻고 첫 번째 부분을 사용하여 두 번째 부분을 얻어야합니다. 혼란? 예를 들어 보겠습니다. 우리는 어휘 수업을 만듭니다. 사용자가 값을 넣으면 클래스는 식별자를 반환해야 하며 사용자가 식별자를 넣으면 클래스는 값을 반환해야 합니다. boost::array<이벤트, 5>는 메모리를 할당하지 않지만 다섯 가지 요소를 모두 생성합니다. 5개 미만의 요소를 반환할 수 있는 방법은 없습니다. 이제 부스트::enable_if_c 사용 없이 함수 중에서 선택할 수 있는 방법의 예를 보았습니다.

POD 데이터 형식을 처리하기위한 일반적인 방법이있는 다음 예제를 생각해 봅시다 : 그리고 Kohske Takahashi가 친절하게 제안하고 제출 한 것처럼 숫자 패키지를 사용하는 R 솔루션에 대해 벤치 마킹 할 수도 있습니다. 부스트::python 라이브러리를 사용하여 C++ 라이브러리로 파이썬을 확장합니다. 일부는 부스트에 대한 기존의 튜토리얼을 기반으로 : 조엘 드 구즈만에서 :python. 다른 사람들은 독립적입니다. shared_ptr 데이터 멤버를 설정하지 않기 때문에 각 인스턴스의 초기 참조 수는 이제 두 개가 아닌 1개입니다. 출력의 마지막 두 줄은 클래스 가수와 노래의 인스턴스가 main()의 끝에 파괴되었다는 것을 보여줍니다. shared_ptr 데이터 멤버가 아닌 weak_ptr 데이터 멤버를 사용하여 메모리 누수를 제거했습니다. weak_ptr은 참조 수에 영향을 주지 않지만 리소스에 임시 shared_ptr을 만들어 필요할 때 리소스에 액세스할 수 있도록 합니다. main()에서 만든 shared_ptr이 소멸되면 참조 수가 0이 되고 가수와 노래 클래스의 인스턴스가 올바르게 삭제됩니다. 동적으로 할당 된 배열의 경우 소멸자에서 delete를 사용하지만 삭제하지 않기 때문에 둘 중 하나를 사용하지 않아야합니다.].

대신 벡터를 사용할 수 있습니다. 부스트를 사용해야 한다고 주장하는 경우 boost::shared_array 또는 boost::scoped_array를 사용할 수 있습니다. 이전 레시피를 읽은 후 일부 독자는 어디서나 빠른 풀 할당자를 사용하기 시작할 수 있습니다. 특히, std::set 및 std::map. 글쎄, 난 그 일을 당신을 막을 거야, 하지만 적어도 대안을 살펴 보자: 평면 연관 컨테이너. 이러한 컨테이너는 기존 벡터 컨테이너 위에 구현되고 정렬된 값을 저장합니다. boost::mpl은 컴파일 타임 알고리즘, 시퀀스 및 메타 함수의 상위 수준 C++ 템플릿 메타프로그래밍 프레임워크입니다. 이 레시피와 다음 레시피는 많은 Boost 라이브러리에서 사용되는 Boost.Test 라이브러리를 사용하여 자동 테스트에 전념합니다. 실습을 통해 우리 자신의 클래스에 대한 몇 가지 테스트를 작성해 봅시다. 부스트는 주로 템플릿을 사용하여 구현됩니다.

즉, 헤더 파일만, 컴파일 타임은 연결되지 않습니다. 이 같은 예를 들어 게시물에 대 한 완벽 한. 이전 레시피에서는 부스트::바인드 사용에 대한 몇 가지 예를 보았습니다. 그것은 작은 단점이있는 좋은 유용한 도구입니다. 부스트::bind 메타함수의 펑터를 C++03의 변수로 저장하기가 어렵습니다. 일부 SQL 데이터베이스 인터페이스를 중심으로 래퍼를 만들고 있다고 가정해 보겠습니다. boost::any데이터베이스 테이블의 단일 셀에 대한 요구 사항과 완벽하게 일치하기로 결정했습니다. 다른 프로그래머는 클래스를 사용하고, 그의 작업은 데이터베이스에서 행을 얻고 행의 산술 형식의 합계를 계산하는 것입니다.