C ++ 프로그래밍을위한 8 가지 훌륭한 라이브러리

C ++는 1979 년에 디자인 된 40 년이 넘은 범용 시스템 프로그래밍 언어입니다. C ++는 여전히 여러 프로그래밍 언어 인기 지수에서 상위권을 차지하고 있습니다.

C ++ 사용 경로를 매끄럽게하는 것은 IDE, 편집기, 컴파일러, 테스트 프레임 워크, 코드 품질 및 기타 도구 제작자간에 언어에 대한 광범위한 지원입니다. 소프트웨어 개발자는 또한 C ++ 애플리케이션 구축을 지원하는 많은 우수한 라이브러리를 자유롭게 사용할 수 있습니다. 다음은 C ++ 개발자가 의존하는 8 가지입니다. 

활성 템플릿 라이브러리

Microsoft에서 ATL (액티브 템플릿 라이브러리)은 이중 인터페이스, 표준 COM 열거 자 인터페이스, 연결 지점 및 ActiveX 컨트롤과 같은 COM 기능을 지원하는 COM (공통 개체 모델) 개체를 빌드하기위한 C ++ 클래스 집합입니다. Visual Studio IDE에서 사용할 수있는 ATL은 단일 스레드 개체, 아파트 모델 개체, 자유 스레드 모델 개체 또는 자유 스레드 및 아파트 모델 개체를 모두 빌드하는 데 사용할 수 있습니다.

Asio C ++ 라이브러리

Asio C ++ 라이브러리는 네트워크 및 저수준 I / O 프로그래밍에 사용되어 일관된 비동기 모델을 제공합니다. 동시성, C ++ 네트워킹 및 기타 유형의 I / O를위한 기본 구성 요소를 제공하는 Asio는 스마트 폰 앱 및 게임에서 고도의 대화 형 웹 사이트 및 실시간 트랜잭션 시스템에 이르는 다양한 애플리케이션에 사용되었습니다. Asio를 사용하는 프로젝트에는 WebSocketPP 라이브러리와 Lua 언어 용 DDT3 원격 디버거가 포함됩니다. Asio는 Boost Software License에 따라 무료 오픈 소스로 제공되며 Linux, Windows, MacOS 및 FreeBSD에서 지원됩니다.

아이겐

Eigen은 행렬, 벡터, 수치 해석기 및 관련 알고리즘을 포함한 선형 대수를위한 C ++ 템플릿 라이브러리입니다. 작고 고정 된 행렬부터 임의로 크고 조밀 한 행렬에 이르기까지 모든 행렬 크기가 지원됩니다. 신뢰성을 위해 알고리즘이 선택됩니다. 모든 표준 숫자 유형이 지원됩니다. 속도를 위해 Eigen은 임시를 지능적으로 제거하고 지연 평가를 가능하게하는 표현식 템플릿을 제공합니다. Mozilla Public License 2에 따라 무료로 제공되고 Eigen 프로젝트 페이지에서 다운로드 할 수있는 Eigen은 C ++ 프로그래머에게 표현력 있고 깔끔하며 자연스러운 것으로 지지자들이 설명하는 API를 갖추고 있습니다. Eigen의 테스트 스위트는 안정성을 보장하기 위해 많은 컴파일러에 대해 실행되었습니다.

FloatX

FloatX 또는 Float eXtended는 정밀도가 낮은 부동 소수점 유형 에뮬레이션을위한 헤더 전용 라이브러리입니다. 기본적으로 C ++ 컴파일러와 호환되지만 FloatX는 Python 또는 Fortran과 같은 다른 언어로 호출 될 수 있습니다. 부동 소수점 유형은 기본 단 정밀도 및 배정 밀도 유형 이상으로 확장됩니다. 사용자가 지수에 사용되는 비트 수와 부동 소수점 수의 중요한 부분을 선택할 수있는 템플릿 유형이 제공됩니다. FloatX는 정밀도가 낮은 부동 유형을 에뮬레이트하기위한 FlexFloat 라이브러리의 아이디어를 기반으로하지만 C에서 FlexFloat 기능의 상위 세트를 구현하고 C ++ 래퍼를 제공합니다. FloatX는 Open Transprecision Computing 이니셔티브에서 나왔습니다. Apache License 2.0에 따라 무료로 사용할 수 있습니다. 

OpenCV

OpenCV 또는 오픈 소스 컴퓨터 비전 라이브러리는 기본적으로 C ++로 작성된 컴퓨터 비전 및 기계 학습 라이브러리이며 BSD 라이선스에 따라 사용할 수 있습니다. OpenCV는 컴퓨터 비전 애플리케이션을위한 공통 인프라를 제공하고 상용 제품에서 기계 인식의 사용을 가속화하기 위해 구축되었습니다. 얼굴 인식, 물체 감지, 물체 분류, 3D 모델 추출, 이미지 검색 등을위한 2,500 개 이상의 최적화 된 알고리즘을 통해 OpenCV는 47,000 명 이상의 사용자 커뮤니티를 확보했습니다. OpenCV 프로젝트 웹 사이트에서 사용할 수있는이 라이브러리는 C ++, Java, Python 및 Matlab 인터페이스를 제공하고 Windows, Linux, Android 및 MacOS를 지원합니다. CUDA 및 OpenCL 인터페이스가 개발 중입니다.

Poco C ++ 라이브러리

C ++ 개발을 단순화하기 위해 고안된 Poco (휴대용 구성 요소) C ++ 라이브러리는 데스크톱 및 서버에서 모바일 및 IoT 장치에 이르는 시스템에서 실행되는 인터넷 및 네트워크 애플리케이션을 구축하기위한 교차 플랫폼 C ++ 라이브러리입니다. 라이브러리는 기계 학습 또는 데이터 분석을위한 REST API로 마이크로 서비스를 구축하는데도 사용할 수 있습니다. Poco 라이브러리는 개념 상 Java 클래스 라이브러리, Microsoft의 .NET Framework 또는 Apple Cocoa와 유사합니다.

개발자는 Poco 라이브러리를 사용하여 SQL 데이터베이스, Redis 또는 MongoDB와 통신하는 C ++ 애플리케이션 서버를 구축하거나 클라우드 백엔드와 통신하는 IoT 장치 용 소프트웨어를 구축 할 수 있습니다. 라이브러리의 기능 중에는 캐시 프레임 워크, HTML 양식 처리, 파일 전송을위한 FTP 클라이언트, HTTP 서버 및 클라이언트가 있습니다. Poco 라이브러리는 Boost 소프트웨어 라이선스에 따라 무료로 제공되며 GitHub에서 다운로드 할 수 있습니다. 

Windows 템플릿 라이브러리

원래 Microsoft에서 제공 한 WTL (Windows Template Library)은 2004 년부터 경량 Windows 응용 프로그램 및 UI 구성 요소를 빌드하기위한 오픈 소스 라이브러리입니다. Microsoft Foundation Classes 도구 키트의 대안으로 자리 잡은 WTL은 ATL을 확장하고 컨트롤, 대화 상자, 프레임 창 및 GDI 개체에 대한 클래스 집합을 제공합니다.

중량

Wt는 개발자가 JavaScript를 작성하지 않고도 위젯을 사용하여 대화 형 웹 UI를 구축 할 수 있도록하는 최신 C ++의 웹 GUI 라이브러리입니다. 서버 측 솔루션 인 Wt는 기본 제공 보안, PDF 렌더링, 2D 및 3D 페인팅 시스템, 객체 관계형 매핑 라이브러리, 차트 라이브러리 및 인증 프레임 워크를 제공하여 요청 처리 및 페이지 렌더링을 수행합니다. 핵심 라이브러리는 오픈 소스이며 Linux, Unix 또는 Windows에 배포 할 수있는 하이브리드 단일 페이지 프레임 워크를 제공합니다.

소프트웨어 엔지니어링 회사 인 Emweb에서 개발 한 Wt는 HTML5 및 HTML4 브라우저는 물론 일반 HTML 사용자 에이전트와도 호환됩니다. 그리고 Wt는 타사 JavaScript 라이브러리와 통합 할 수 있습니다. Wt에서 애플리케이션은 푸시 버튼과 같은 일반 위젯에서 전체 블로그 위젯과 같은 특수 위젯에 이르는 위젯 계층 구조로 정의됩니다. 위젯 트리는 브라우저에서 HTML / JavaScript로 렌더링됩니다. 프로젝트 웹 페이지에서 Wt를 다운로드 할 수 있습니다. 오픈 소스 및 상업적 사용 조건을 모두 사용할 수 있습니다.