C ++プログラミング用の8つの優れたライブラリ

C ++は、現在40年以上経過し、1979年に設計された汎用システムプログラミング言語です。C++は、勢いを失うどころか、複数のプログラミング言語の人気指数の上位にランクされています。

C ++の使用への道をスムーズにすることは、IDE、エディター、コンパイラー、テストフレームワーク、コード品質、およびその他のツールのメーカーの間で言語を幅広くサポートしています。ソフトウェア開発者は、C ++アプリケーションの構築を支援するための多くの優れたライブラリも自由に使用できます。C ++開発者が依存している8つを次に示します。 

アクティブテンプレートライブラリ

MicrosoftのActiveTemplate Library(ATL)は、COM(Common Object Model)オブジェクトを構築するためのC ++クラスのセットであり、デュアルインターフェイス、標準のCOM列挙子インターフェイス、接続ポイント、ActiveXコントロールなどのCOM機能をサポートしています。Visual Studio IDEで利用可能なATLを使用して、シングルスレッドオブジェクト、アパートメントモデルオブジェクト、フリースレッドモデルオブジェクト、またはフリースレッドオブジェクトとアパートメントモデルオブジェクトの両方を構築できます。

Asio C ++ライブラリ

Asio C ++ライブラリは、ネットワークおよび低レベルI / Oプログラミングに使用され、一貫した非同期モデルを提供します。Asioは、並行性、C ++ネットワーキング、およびその他のタイプのI / Oの基本的な構成要素を提供し、スマートフォンアプリやゲームから、高度にインタラクティブなWebサイトやリアルタイムトランザクションシステムに至るまでのアプリケーションで使用されてきました。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は、低精度の浮動小数点型エミュレーション用のヘッダーのみのライブラリです。FloatXは、C ++コンパイラとネイティブに互換性がありますが、PythonやFortranなどの他の言語から呼び出すこともできます。浮動小数点型は、ネイティブの単精度および倍精度型を超えて拡張されています。ユーザーが指数に使用されるビット数と浮動小数点数の重要な部分を選択できるテンプレートタイプが提供されています。FloatXは、精度の低いフローティング型をエミュレートするためのFlexFloatライブラリのアイデアに基づいていますが、CでFlexFloat機能のスーパーセットを実装し、C ++ラッパーを提供します。FloatXは、Open TransprecisionComputingイニシアチブから生まれました。Apache License2.0の下で無料で利用できます。 

OpenCV

OpenCV、またはオープンソースのコンピュータービジョンライブラリは、C ++でネイティブに記述され、BSDライセンスの下で利用可能なコンピュータービジョンおよび機械学習ライブラリです。OpenCVは、コンピュータービジョンアプリケーションに共通のインフラストラクチャを提供し、商用製品での機械知覚の使用を加速するために構築されました。OpenCVは、顔認識、オブジェクト検出、オブジェクト分類、3Dモデル抽出、画像検索などのために2,500を超える最適化されたアルゴリズムを備えており、47,000人を超えるユーザーコミュニティを集めています。OpenCVプロジェクトのWebサイトから入手できるこのライブラリは、C ++、Java、Python、およびMatlabインターフェイスを提供し、Windows、Linux、Android、およびMacOSをサポートします。CUDAおよびOpenCLインターフェースは開発中です。

Poco C ++ライブラリ

Poco(Portable Components)C ++ライブラリは、C ++開発を簡素化することを目的としており、デスクトップやサーバーからモバイルやIoTデバイスに至るまでのシステムで実行するインターネットおよびネットワークアプリケーションを構築するためのクロスプラットフォームのC ++ライブラリです。ライブラリを使用して、機械学習やデータ分析用のRESTAPIを使用してマイクロサービスを構築することもできます。 Pocoライブラリは、Javaクラスライブラリ、Microsoftの.NET Framework、またはAppleCocoaと概念が似ています。

開発者は、Pocoライブラリを使用して、SQLデータベース、Redis、またはMongoDBと通信するC ++でアプリケーションサーバーを構築したり、クラウドバックエンドと通信するIoTデバイス用のソフトウェアを構築したりできます。ライブラリの機能には、キャッシュフレームワーク、HTMLフォーム処理、ファイル転送用のFTPクライアント、およびHTTPサーバーとクライアントがあります。Pocoライブラリは、Boost Software Licenseの下で無料で利用でき、GitHubからダウンロードできます。 

Windowsテンプレートライブラリ

マイクロソフトの元々のWindowsテンプレートライブラリ(WTL)は、(2004年以降)軽量のWindowsアプリケーションとUIコンポーネントを構築するためのオープンソースライブラリです。WTLは、Microsoft Foundation Classesツールキットの代替として位置付けられており、ATLを拡張し、コントロール、ダイアログ、フレームウィンドウ、およびGDIオブジェクトのクラスのセットを提供します。

重量

Wtは最新のC ++のWebGUIライブラリであり、開発者はJavaScriptを記述しなくても、ウィジェットを使用してインタラクティブなWebUIを構築できます。サーバー側のソリューションであるWtは、リクエスト処理とページレンダリングを行い、組み込みのセキュリティ、PDFレンダリング、2Dおよび3Dペイントシステム、オブジェクトリレーショナルマッピングライブラリ、チャートライブラリ、および認証フレームワークを提供します。コアライブラリはオープンソースであり、Linux、Unix、またはWindowsにデプロイできるハイブリッドシングルページフレームワークを提供します。

ソフトウェアエンジニアリング会社Emwebによって開発されたWtは、HTML5およびHTML4ブラウザー、およびプレーンHTMLユーザーエージェントと互換性があります。また、WtはサードパーティのJavaScriptライブラリと統合できます。Wtでは、アプリケーションはウィジェットの階層として定義されます。プッシュボタンなどの一般的なウィジェットから、ブログウィジェット全体などの特殊なウィジェットまでさまざまです。ウィジェットツリーは、ブラウザでHTML / JavaScriptとしてレンダリングされます。Wtは、プロジェクトのWebページからダウンロードできます。オープンソースと商用の両方の使用条件が利用可能です。