Docs Menu
Docs Home
/ / /
C++ 드라이버

C++17 폴리필 선택

mongocxx 드라이버는 C++17 기능 std::optionalstd::string_view 을 사용합니다. 이러한 기능에 대해 C++17 표준 라이브러리 구현을 사용하려면 CMake 구성 변수 CMAKE_CXX_STANDARD 를 17 이상으로 설정합니다. 그렇지 않고 C++ 이전 구성을 위해 mongocxx 드라이버를 컴파일하려면17 다음 옵션에서 폴리필 라이브러리 구현을 선택해야 합니다.

  • bsoncxx (-DENABLE_BSONCXX_POLY_USE_IMPLS=ON 인 경우에만 기본값)

    -DBSONCXX_POLY_USE_IMPLS=ON 으로 선택합니다. 이 옵션은 추가 외부 라이브러리 종속성이 필요하지 않으므로 가장 권장되는 옵션입니다. 다른 옵션이 지정되지 않은 경우 C++ 이전17 구성에 대해 기본값 이 옵션을 선택할 활성화 하려면 ENABLE_BSONCXX_POLY_USE_IMPLS=ON 를 설정하다 합니다(이 옵션은 향후 주요 출시하다 에서 기본값 으로 켜짐으로 설정하다 됨).

  • MNMLSTC/core (Windows가 아닌 플랫폼의 경우 기본값)

    이 옵션은 더 이상 사용되지 않으며 향후 주요 릴리스에서 제거될 예정입니다. -DBSONCXX_POLY_USE_MNMLSTC=1 으로 선택합니다.

    참고

    이 옵션은 bsoncxx 라이브러리 설치에 MNMLSTC/core의 헤더 전용 설치를 제공하므로 구성 프로세스 중에 Github 에서 MLNMLSTC를 다운로드합니다. 시스템에 사용 가능한 버전의 MNMLSTC가 이미 있는 경우 -DBSONCXX_POLY_USE_SYSTEM_MNMLSTC 을(를) 사용하여 다운로드 단계를 생략할 수 있습니다.

  • 부스트 (Windows 플랫폼의 기본값)

    이 옵션은 더 이상 사용되지 않으며 향후 주요 릴리스에서 제거될 예정입니다. -DBSONCXX_POLY_USE_BOOST=1 으로 선택합니다. 이는 현재 C++17 을 지원하지 않는 MSVC 버전을 사용하는 경우 유일한 비 bsoncxx 옵션입니다.

참고

'기본값'은 명시적으로 선택된 폴리필 라이브러리가 없는 경우 의 C++17이전 구성을 나타냅니다.

대부분의 사용자는 -DENABLE_BSONCXX_POLY_USE_IMPLS=ON 과 함께 기본값 동작을 사용해야 합니다. 그러나 외부 폴리필 라이브러리 중 하나를 선호하는 경우(예: 이미 애플리케이션 에서 종속성을 사용하고 있는 경우 기본값 선택 동작에 의존하는 것보다 해당 외부 폴리필 라이브러리를 명시적으로 선택하는 것이 나을 수 있습니다.

참고

폴리필 기능의 C++ 표준 적합성 및 지원되는 동작은 선택한 폴리필 라이브러리에 따라 다를 수 있습니다. 이러한 폴리필의 목적은 C++17 17 에 해당하는 구성에 대한 Stand-In을 제공하여 C++ 이전 구성을 지원 하는 것입니다. 따라서 가능하면 -DCMAKE_CXX_STANDARD=17 이상을 설정하여 C++17 표준 라이브러리를 사용하는 것이 좋습니다.

경고

폴리필 라이브러리의 선택은 mongocxx 라이브러리의 공용 API 및 ABI에 직접적인 영향을 미칩니다. 폴리필을 변경하면 소스에 영향을 미치는 변경 사항(컴파일 중)과 바이너리가 중단되는 변경(링크 또는 실행 중)이 모두 발생할 수 있습니다. 폴리필 관련 구성 또는 동작에 대한 의존도를 제한하려면 mongocxx가 아닌 라이브러리 인터페이스와 함께 stdx::string_viewstdx::optional<T> 사용을 피하세요.

돌아가기

BSON