-
C++ 프로그래밍을 위한 5가지 라이브러리SW/C\C++(STL) 2020. 1. 31. 09:30
C ++은 1979 년에 디자인 된 40 년이 넘은 범용 시스템 프로그래밍 언어입니다. C ++은 스팀을 잃는 것 외에도 여러 프로그래밍 언어의 인기 지수에서 여전히 상위에 있습니다.
C ++ 사용 경로를 매끄럽게하는 것은 IDE, 편집기, 컴파일러, 테스트 프레임 워크, 코드 품질 및 기타 도구 제작자 간의 언어에 대한 광범위한 지원입니다. 또한 소프트웨어 개발자는 C ++ 응용 프로그램 작성을 지원하는 많은 우수한 라이브러리를 사용할 수 있습니다. 다음은 C ++ 개발자가 사용하는 5가지 라이브러리.
활성 템플릿 라이브러리 Microsoft의 ATL (Active Template Library)은 이중 인터페이스, 표준 COM 열거 자 인터페이스, 연결 지점 및 ActiveX 컨트롤과 같은 COM 기능을 지원하는 COM (Common Object Model) 개체를 빌드하기위한 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
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 또는 Open Source Computer Vision Library는 기본적으로 C ++로 작성된 컴퓨터 비전 및 기계 학습 라이브러리이며 BSD 라이센스에 따라 사용 가능합니다. OpenCV는 컴퓨터 비전 애플리케이션을위한 공통 인프라를 제공하고 상용 제품에서 기계 인식의 사용을 가속화하도록 설계되었습니다. 얼굴 인식, 물체 감지, 물체 분류, 3D 모델 추출, 이미지 검색 등을위한 2,500 개 이상의 최적화 된 알고리즘은 OpenCV가 47,000 명 이상의 사용자 커뮤니티를 축적했습니다. OpenCV 프로젝트 웹 사이트에서 사용 가능한 라이브러리는 C ++, Java, Python 및 Matlab 인터페이스를 제공하고 Windows, Linux, Android 및 MacOS를 지원합니다. CUDA 및 OpenCL 인터페이스가 개발 중입니다.
Poco C ++ 라이브러리
C ++ 개발을 단순화하기 위해 Poco (Portable Components) C ++ 라이브러리는 데스크톱 및 서버에서 모바일 및 IoT 장치에 이르는 시스템에서 실행되는 인터넷 및 네트워크 응용 프로그램을 구축하기위한 크로스 플랫폼 C ++ 라이브러리입니다. 라이브러리는 머신 러닝 또는 데이터 분석을위한 REST API를 사용하여 마이크로 서비스를 구축하는 데에도 사용할 수 있습니다. Poco 라이브러리는 개념적으로 Java 클래스 라이브러리, Microsoft의 .NET Framework 또는 Apple Cocoa와 유사합니다.
개발자는 Poco 라이브러리를 사용하여 SQL 데이터베이스, Redis 또는 MongoDB와 통신하는 C ++로 응용 프로그램 서버를 구축하거나 클라우드 백엔드와 통신하는 IoT 장치 용 소프트웨어를 구축 할 수 있습니다. 라이브러리의 기능 중에는 캐시 프레임 워크, HTML 양식 처리, 파일 전송을위한 FTP 클라이언트 및 HTTP 서버 및 클라이언트가 있습니다. Poco 라이브러리는 Boost Software License에 따라 무료로 제공되며 GitHub에서 다운로드 할 수 있습니다.
Windows 템플릿 라이브러리 원래 Microsoft의 WTL (Windows Template Library)은 2004 년부터 가벼운 Windows 응용 프로그램 및 UI 구성 요소를 구축하기위한 오픈 소스 라이브러리입니다. WTL은 Microsoft Foundation Classes 툴킷의 대안으로 ATL을 확장하고 컨트롤, 대화 상자, 프레임 창 및 GDI 개체에 대한 일련의 클래스를 제공합니다.'SW > C\C++(STL)' 카테고리의 다른 글
[C/C++] #IND에러 잡기(무한대 등 다양한 에러)! (0) 2018.07.25 [c/c++] opencv 오픈소스를 사용하여 그래프 그리기. (0) 2018.07.24 [STL] vector와 struct 같이 사용하기 (0) 2018.07.06 [STL] 이중벡터 vector<vector<type>>형 (0) 2018.07.06