Microsoft는 Visual Studio에있는 표준 C ++ 라이브러리 코드를 출시했습니다.

마이크로 소프트 로고

Microsoft 로고

CppCon 2019 컨퍼런스에서 요즘 축하되고있는 Microsoft의 지수는 코드 공개를 발표 할 기회를 가졌습니다. 구현을 위해 C ++ 표준 라이브러리에서 (STL이라고도 함), MSVC Toolkit 및 Visual Studio 개발 환경의 일부입니다.

라이브러리는 현재 C ++ 14 및 C ++ 17 표준에 설명 된 기능을 구현합니다. 또한 현재 작업 초안의 변경 사항에 따라 향후 C ++ 20 표준을 지원하는 방향으로 개발되었습니다.

Microsoft 직원들이 이러한 움직임을 결정한 이유, 진술에서 그들은 설명합니다.

이 작업을 수행하는 데에는 몇 가지 이유가 있습니다. 그 중 하나는 GitHub에서 STL 작업을하기위한 것입니다.이를 통해 고객은 개발 상황을 따라갈 수 있고, 최신 변경 사항을 테스트하고, 검토를 통해 풀 요청을 개선 할 수 있습니다.

C ++ 표준화가 가속화되고 매년 더 큰 기능이 투표됨에 따라 핵심 기능을 오픈 소스 기여로 받아들이는 것이 중요 할 것이라고 생각합니다. (예를 들어 C ++ 20 형식 및 연대순 라이브러리가 잠재적 후보입니다.) 우리는 또한 핵심 기능의 구현을 가능하게함으로써 C ++ 커뮤니티에 다시 기여하고자합니다. (예 : C ++ 17의 charconv)

그것으로 Microsoft 사람들은이 라이브러리를 개방형 프로젝트로 계속 개발할 계획임을 알 렸습니다. GitHub에서 개발 중이며 수정 및 새로운 기능 구현을 통해 외부 개발자의 pull 요청을 수락합니다 (개발에 참여하려면 이전 된 코드에 소유권을 이전하려면 CLA 계약이 필요합니다).

관찰되는 것은 STL에서 GitHub로 개발을 이전하면 Microsoft 고객이 개발 진행 상황을 추적하고, 최신 변경 사항을 실험하고, 들어오는 혁신 요청을 검토 할 수 있습니다.

코드 열기 커뮤니티가 기성 구현을 사용하도록 허용 다른 프로젝트에서 새로운 표준을위한 기회.

이 라이브러리의 코드 라이선스에 대해 생성 된 실행 파일의 구성에 런타임 라이브러리를 포함시키는 문제를 해결하는 바이너리 파일에 대한 예외를 제외하고 Apache 2.0 라이선스에 따라 개방 된 것으로 제안되었습니다.

확실하게, MSVC STL은 여전히 ​​별도의 라이브러리이므로 libc ++와 병합되지 않습니다.

Microsoft는 코드 라이선스가 필요한 이유를 설명합니다. LLVM 프로젝트의 libc ++ 라이브러리와 코드 스왑을 허용하는 방식으로 선택됩니다. STL과 libc ++는 데이터 구조의 내부 표현이 다르지만 원하는 경우 libc ++ 개발자는 흥미로운 STL 기능 (예 : charconv)을 이식하거나 두 프로젝트가 공동으로 일부 혁신을 개발할 수 있습니다.

MSVC STL은 최근 Clang / LLVM / libc ++ 프로젝트에 의해 생성 된 LLVM 예외가있는 Apache v2.0 라이선스에 따라 배포됩니다.

Apache 라이선스에 추가 된 예외는 최종 사용자에게 STL 컴파일 바이너리를 제공 할 때 소스 제품의 사용을 언급하는 요구 사항을 취소합니다.

이 허용 오픈 소스 라이선스는 libc ++와 동일한 라이선스를 가지고 있기 때문에 선택되었습니다. 라이브러리간에 코드를 더 쉽게 공유 할 수 있습니다. 분명히 말하면 MSVC STL은 libc ++와 병합되지 않습니다. 데이터 구조 표현이 다른 다른 플랫폼을 지원하는 별개의 라이브러리입니다.

반면에 프로젝트의 주요 목표 중 하나는 요구 사항을 완전히 준수하는 것입니다. 사양, 고성능, 사용 편의성 (디버깅, 진단, 오류 감지 도구) 및 이전 버전의 Visual Studio 2015/2017과의 소스 및 ABI 수준 호환성을 보장합니다.

지역 중 Microsoft는 다른 플랫폼으로의 이식성 및 사용자 지정 확장 추가 개발에 관심이 없습니다.

Microsoft가 작성한 진술에 대해 더 알고 싶다면 그것을 참조하십시오. 다음 링크에서.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자: AB Internet Networks 2008 SL
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.