C++ プログラミング言語の歴史は、Bjarne Stroustrup が博士論文のために開発を行った1979 年に遡ります。 Stroustrup が使用できるすべての言語のうち、Simula と呼ばれる言語があります。これは、名前が示すように、主にシミュレーションのために設計された言語である可能性があります。 Simula 67 言語は Stroustrup によって使用されるバリアントであり、オブジェクト指向プログラミング パラダイムをサポートする主要な言語とみなされます。 Stroustrup 氏は、このパラダイムがパッケージ開発に役立つと考えています。ただし、Simula言語は実用的かつ実用的に使用するには遅すぎます。 その直後、Bjarne Stroustrup は、オブジェクト指向パラダイムをサポートすることで C を強化したいと考えました。彼は実装のアイデアを得るために、Smalltalk の OO 実装を詳しく調べました。しかし、彼はそのためにパフォーマンスを諦めたくなかったので、C++ コードの実行時に C コードと同等 (またはそれ以上) のパフォーマンスが得られることを期待して、「C with Classes (C with Classes)」に取り組み始めました。
1983 年に、言語の名前は「C with Classes」から C++ に変更されました。 C の ++ 演算子は変数をインクリメントする演算子であり、これにより Stroustrup が言語をどのように見ているかについてある程度の洞察が得られます。この期間中に多くの新機能が追加されましたが、その中で最も注目に値するのは、仮想関数、関数のオーバーロード、アンパサンドによる参照、const キーワード、および 2 つのスラッシュを使用した単一行のコメントです。
1985 年、Stroustrup は「The C++ Programming Language」という本を出版しました。同年、C++が商用製品として実装されました。この言語は正式に標準化されていないため、この本は非常に重要な参考資料となります。この言語は 1989 年に再度更新され、保護された静的メンバー、および複数のクラスからの継承が組み込まれました。
1990 年に、注釈付き C++ リファレンス マニュアルがリリースされました。同年、Borland の Turbo C++ コンパイラが商用製品としてリリースされました。 Turbo C++ は、C++ 開発に多大な影響を与える可能性のある他の多くのライブラリを追加します。 Turbo C++ の最後の安定バージョンは 2006 年ですが、このコンパイラは今でも広く使用されています。
1998 年に、C++ 標準委員会は、非公式に C++98 として知られる最初の C++ ISO/IEC 14882:1998 国際標準を発行しました。規格策定には「注釈付きC++リファレンスマニュアル」が大きな影響を与えたと言われています。 1979 年にコンセプト開発が開始された標準テンプレート ライブラリも含まれています。 2003 年、委員会は 1998 年の基準で報告されたいくつかの問題に対応し、それに応じて基準を改訂しました。変更された言語は C++03 と呼ばれます。
2005 年、C++ 標準委員会は、最新の C++ 標準に追加する予定のさまざまな機能を詳しく説明した技術レポート (TR1 と呼ばれる) を発行しました。新しい標準は、最初の 10 年が終わる前にリリースされる予定であるため、非公式には C++0x として知られています。皮肉なことに、新しい規格は 2011 年半ばまでリリースされません。その時点までに、いくつかの技術レポートが発行され、一部のコンパイラーは新機能の実験的なサポートを追加し始めていました。
2011 年半ばに、新しい C++ 標準 (C++11 と呼ばれる) が完成しました。 Boost ライブラリ プロジェクトは、新しいモジュールの一部が対応する Boost ライブラリから直接提供されるなど、新しい標準に大きな影響を与えました。新機能には、正規表現のサポート、包括的なランダム化ライブラリ、新しい C++ タイミング ライブラリ、アトミック サポート、標準スレッド ライブラリ、他の言語の foreach ループと同様の機能を提供する新しい for ループ構文、auto キーワード、新しい機能などがあります。コンテナ クラス、共用体および配列初期化子リスト、および可変個引数テンプレートのサポートの向上。
2014 年に、C++ 14 (C++ 1y とも呼ばれる) が C++11 の小規模な拡張機能としてリリースされました。その主な機能はバグ修正と小規模な改善であり、国際標準の草案投票手順は 2014 年 8 月中旬に完了しました。 lambda 関数と型推論機能。
2017 年に、C17 標準がリリースされました。C17 は多くの機能を提供します。コア言語とライブラリの機能強化。
2020 年にC++20 標準がリリースされ、多くの強力な機能が導入されました。そのうちのより重要なものは次のとおりです。
コンセプト: コンセプトは、テンプレートについての考え方やプログラムの方法を変えます。これらは、テンプレート パラメーターのセマンティック カテゴリです。これにより、型システムで直接意図を表現できるようになります。何か問題が発生した場合は、明確なエラー メッセージが表示されます。
Ranges ライブラリ: 新しい Ranges ライブラリにより、コンテナ上でアルゴリズムを直接実行し、パイプ表記でアルゴリズムを構成し、無限のデータ ストリームに適用することが可能になります。
コルーチン: C++ での非同期プログラミングは、コルーチンのおかげで主流になりました。コルーチンは、共同タスク、イベント ループ、無限のデータ ストリームまたはパイプラインの基礎です。
モジュール: モジュールはヘッダー ファイルの制限を克服します。ヘッダー ファイルとソース ファイルの分離は、プリプロセッサと同じくらい時代遅れになりました。最後に、ビルド時間が短縮され、パッケージをビルドする方法がより簡単になりました。
同時実行性: アトミック スマート ポインター、結合およびキャンセル可能なスレッド、C++ 同時プログラミング機能を強化する C20 同期ライブラリ。
C++ チュートリアル
C++ の概要
C++環境設定
C++の基本構文
C++ コメント
C++ データ型
C++ 変数の型
C++ 変数のスコープ
C++ 定数
C++ 修飾子の種類
C++ ストレージ クラス
C++ 演算子
C++ ループ
C++判定
C++関数
C++ の数値
C++ 配列
C++ 文字列
C++ ポインター
C++ リファレンス
C++ の日付と時刻
C++ の基本的な入出力
C++ データ構造
C++ のクラスとオブジェクト
C++の継承
C++ のオーバーロードされた演算子とオーバーロードされた関数
C++ ポリモーフィズム
C++ データの抽象化
C++ データのカプセル化
C++インターフェース(抽象クラス)
C++ ファイルとストリーム
C++ 例外処理
C++ 動的メモリ
C++ 名前空間
C++ テンプレート
C++ プリプロセッサ
C++ 信号処理
C++ マルチスレッド
C++ Web プログラミング
C++ STL チュートリアル
C++標準ライブラリ
1. 基礎知識
8.1 構造の基本概念
8.2 構造体の定義と使用法
8.3 構造体配列
8.4 構造体ポインタ
8.5 構造の入れ子構造
8.6 関数パラメータとしての構造体
8.7 構造体での const 使用シナリオ
7.1 ポインタの基本概念
7.2 ポインタ変数の定義と使用
7.3 ポインタが占有するメモリ空間
7.4 ヌルポインタとワイルドポインタ
7.5 const 変更ポインタ
7.6 ポインタと配列
7.7 ポインタと関数
7.8 ポインタ、配列、関数
1. goto ステートメント (非推奨)
2. 1次元配列
3. 2次元配列
4. 関数における値の転送
5. 関数宣言
6. 関数を別のファイルに記述する
7. ポインタ
8. 構造
2. コアプログラミング
3.1 関数のデフォルトパラメータ
3.2 関数のパラメータの配置
3.3 関数のオーバーロード
2.1 参照の基本的な使用法
2.2 引用上の注意
2.3 関数パラメータとしての参照
2.4 関数の戻り値としての参照
2.5 引用の性質
2.6 定数参照
1.1 プログラムを実行する前に
1.2 プログラムの実行後
1.3 新しい演算子
1. メモリパーティションモデル
2. 引用
3. 機能
「C++11の深い理解:C++11の新機能の分析と応用」
『古典C++入門(第10版)』
『C++入門 Plus 第6版 中国語版(非同期書籍社製)』
「清華コンピュータ書籍翻訳シリーズ: Mastering C++ (第 9 版)」
「C++ による高度なプログラミング (第 4 版)」
『C++ゲームプログラミング入門(第4版)(アシンクロナスブックス社)』
「STLソースコード解析」
『C++ プログラミング: 原則と実践 (基礎) (原書第 2 版)』
「高速化された C++ 中国語版」
『C++プログラミング考(上下巻)』
「中国語版効果的なSTL: STLを効果的に使用するための50の経験」
「C++ プログラミングの構造: 問題、解決策、および設計ガイドライン」
「C++ テンプレート 中国語版」
「C++ 設計における新しい考え方」
「C++ テンプレートのメタプログラミング」
「C++同時プログラミング演習」
『C++ プログラミング言語 (パート 1-3) (原書第 4 版)』
「C++標準ライブラリ(第2版)」
「C++の基本」
「C++ 言語の設計と進化」
「C++ オブジェクト モデルの詳細な調査」
「汎用プログラミングとSTL」
すべての C++ 開発者が使用すべき 10 の C++11 機能
C++ プロジェクトで実際に使用する必要がある 15 の C++11 機能
C++11 でラムダ式を使用する方法
C++11 の深い理解
嘔吐血の選別: C++11 の新機能
C++11 の新機能 auto および decltype のナレッジポイント
C++11 の新機能: 左辺値参照、右辺値参照、移動セマンティクス、完全転送
C++11 新機能リストの初期化
C++11 の新機能 std::function とラムダ式
C++11 の新機能: テンプレートの改善
C++11 の新機能とスレッド関連のナレッジポイント
C++11 の新機能の非同期操作 - async
C++11 の新機能スマート ポインター
C++11 の共通新機能 (1)
C++11 の共通新機能 (2)
C++14 の新機能に関する簡単な説明
C++14 の新機能に関するすべてのナレッジポイントはここにあります
概要: C++17 の新機能
C++20言語機能
P1 C++ プログラミングの概要
P2ヘッダーファイルとクラス宣言
P3 コンストラクター
P4パラメータの転送と戻り値
P5 演算子のオーバーロードと一時オブジェクト
P6 Complex クラスの実装プロセスを確認する
P7 3大機能:コピー構築、コピー複製、破棄
P8 ヒープ、スタック、メモリ管理
P9 Stringクラスの実装プロセスを確認する
P10 拡張機能: クラス テンプレート、関数テンプレートなど
P11 構成と継承
P13 コミッション関連デザイン
P14 1 はじめに
P15 2変換機能
P16 3 非明示的な 1 つの引数コンストラクター
P17 4 ポインターのようなクラス
P18 5 関数のようなクラス
P19 6 名前空間エクスペリエンスのディスカッション
P20 7 クラス テンプレート
P21 8 関数テンプレート
P22 9 メンバーテンプレート
P23 10 特化
P24 11 テンプレートの部分特化
P25 12 テンプレート テンプレート パラメーター
P26 13 C++標準ライブラリについて
P27 14 3つのテーマ
P28 15 参考資料
P29 16 複合&継承関係による構築と破壊
P30 17 vptrとvtblについて
P31 18 これについて
P32 19 0 ダイナミックバインディングについて
P33 19 1 ダイナミックバインディングについて
P34 20 新規・削除について
P35 21 オペレータ新規、オペレータ削除
P36 22 例
P37 23 new,delete$ のオーバーロードの例
P38 24 基本文字列は newextra を使用してアプリケーションのボリュームを拡張します
C++ 標準ライブラリ - コア言語で記述されたクラスと関数のコレクション、および C++ ISO 標準自体の一部
標準テンプレート ライブラリ - 標準テンプレート ライブラリ
C POSIX ライブラリ - POSIX システム用の C 標準ライブラリ仕様
ISO C++ 標準委員会 - C++ 標準委員会
C++ FAQ − C++ に関するよくある質問
Free Country − Free Country は、圧縮、アーカイブ、ゲーム プログラミング、標準テンプレート ライブラリ、GUI プログラミングなどの C++ プログラミング分野をカバーする無料の C++ ソース コードと C++ ライブラリを提供します。
C および C++ ユーザー グループ - C および C++ ユーザー グループは、AI、アニメーション、コンパイラー、データベース、デバッグ、暗号化、ゲーム、グラフィックス、GUI、言語ツール、システム プログラミングなどを含む、さまざまなプログラミング分野をカバーする C++ プロジェクト用の無料のソース コードを提供します。 。
LearnCpp - 無料で C++ プログラミングを学びます
CodeCogs - CodeCogs は、C/C++ の数値コンポーネントの共同オープン ソース ライブラリです。
codeproject - codeproject が提供する C/C++ リソース コード プロジェクト
thoughtco - ゲーム関連の C++ ソース コード
無料の C/C++ ライブラリ - 無料の C++ ソース コードおよびその他の便利なツール
C++ 標準ライブラリ - これは、いくつかの C/C++ Web サイトへのリンクのリストを集めた Web ページです。
cplusplus - C++ 学習 Web サイト
C++ ソース コード - これは、C++ の 345 のソース コードの包括的なリストです。
Apache C++ 標準ライブラリ: アルゴリズム、コンテナ、イテレータ、その他の基本コンポーネントのコレクションです。
ASL: Adobe Source Code Library は、ピアレビュー済みの移植可能な C++ ソース コード ライブラリを提供します。
Boost: 汎用 C++ ライブラリの大規模なコレクション。
BDE: Bloomberg Intelligence Labs の開発環境。
Cinder: プロ品質のクリエイティブなコーディングを提供するオープンソース開発コミュニティ。
Bxxomfort: C++11 の新機能の一部を C++03 に移植する軽量のヘッダーのみのライブラリ。
Dlib: コントラクト プログラミングと最新の C++ テクノロジを使用して設計されたユニバーサル クロスプラットフォーム C++ ライブラリ。
EASTL: EA-STL 公開部分
ffead-cpp: エンタープライズ アプリケーション開発フレームワーク
Folly: Facebook によって開発および使用されているオープン ソース C++ ライブラリ。
JUCE: クロスプラットフォーム ソフトウェアを開発するための包括的な C++ ライブラリ
libphenom: 高性能で拡張性の高いシステムを構築するためのイベント フレームワーク。
LibSourcey: リアルタイム ビデオ ストリーミングおよび高性能ネットワーク アプリケーション用の C++11 イベント IO
Loki: 一般的な設計パターンとイディオムの実装を含む、C++ ライブラリの設計。
MiLi: ヘッダーのみの小さな C++ ライブラリ
openFrameworks: クリエイティブなコーディングのための C++ ツールキットを開発します。
Qt: クロスプラットフォーム アプリケーションおよびユーザー インターフェイス フレームワーク
理由: 開発者が Java、.Net、Python を簡単に使用できるようにすると同時に、C++ のパフォーマンスと利点に対するニーズも満たすクロスプラットフォーム フレームワークです。
ROOT: CERN によって使用される、大量のデータを非常に効率的に処理および分析するためのすべての機能を備えたオブジェクト指向フレームワークのセット。
STLport: STL の代表的なバージョンです。
STXXL: 追加の大規模データセット用の標準テンプレートライブラリ。
Ultimate++: C++ クロスプラットフォームの高速アプリケーション開発フレームワーク
Windows テンプレート ライブラリ : Windows アプリケーションおよび UI コンポーネントを開発するための C++ ライブラリ
Yomm11: C++11 のマルチメソッドを開きます。
Boost.Asio: ネットワークおよび低レベル I/O プログラミング用のクロスプラットフォーム C++ ライブラリ。
libev: フル機能の高性能タイム ループ。 libevent をわずかにモデル化していますが、libevent と同じ制限はなくなり、バグの一部が修正されました。
libevent: イベント通知ライブラリ
libuv: クロスプラットフォームの非同期 I/O。
libco: コルーチン、オンラインで同時に 8 億人のユーザーをサポートする WeChat の基礎となる IO ライブラリ。強力な
libgo: Golang スタイルの同時実行フレームワーク、C++11 実装コルーチン ライブラリ
ACE: C++ オブジェクト指向ネットワーキング ツールキット
カサブランカ: C++ REST SDK
cpp-netlib: 高度なネットワーク プログラミングのためのオープン ソース ライブラリのコレクション
libCurl: マルチプロトコルファイル転送ライブラリ
Mongoose: 非常に軽量な Web サーバー
Muduo: Linux マルチスレッド サーバー用の C++ ノンブロッキング ネットワーク ライブラリ
net_skeleton: C/C++ 用の TCP クライアント/サーバー ライブラリ
POCO: デスクトップ、サーバー、モバイル、および組み込みシステム上で実行できるネットワークおよびインターネット ベースのアプリケーションを構築するための C++ クラス ライブラリ。
RakNet: ゲーム開発者向けのクロスプラットフォームのオープンソース C++ ネットワーク エンジン。
Tufao: Qt の上に C++ で構築された非同期 Web フレームワーク。
WebSocket++: C++/Boost Aiso に基づく WebSocket クライアント/サーバー ライブラリ
ZeroMQ: 高速モジュール型非同期通信ライブラリ
f-stack: Tencent のオープンソース プロトコル スタック、DPDK に基づく高性能のユーザー モード プロトコル スタック。
NtyTcp: ネットマップ、DPDK、rawSocket 実装に基づくシングルスレッド プロトコル スタック。
LWIP: RAM プラットフォーム用の TCP/IP プロトコル スタック実装の合理化されたバージョン。
mTCP: マルチコア システム用の拡張性の高いユーザー空間 TCP/IP プロトコル スタック。
4.4BSD: * nix プロトコル スタックは 4.4BSD から派生しています。
Nginx: IMAP/POP3/SMTP サービスも提供する高性能 HTTP およびリバース プロキシ Web サーバー。
Lighttpd: 安全かつ高速で、業界標準に準拠し、適応性が高く、高構成環境向けに最適化されたオープン ソース Web サーバー ソフトウェアです。
Libmicrohttpd: GNU ソフトウェアの単純な C ライブラリ Web サーバー。 API はシンプルかつ高速です。
shttpd: Mongoose ベースの Web サーバー フレームワーク。
CivetWeb: オプションの CGI、SSL、Lua サポートを備えた、使いやすく強力な C/C++ 組み込み Web サーバーを提供します。
CppCMS: 無料の高性能 Web 開発フレームワーク (CMS ではありません)。
Crow: C++ マイクロ Web フレームワーク (Python Flask からインスピレーションを得た)
Kore: C で開発された Web アプリケーション用の超高速で柔軟な Web サーバー/フレームワーク。
libOnion: C プログラミング言語を使用して Web サーバーを作成するのに役立つ軽量ライブラリ。
QDjango: C++ で書かれ、Qt ライブラリに基づいた Web フレームワークで、Django API をエミュレートしようとするため、この名前が付けられました。
Wt: Web アプリケーションを開発するための C++ ライブラリ。
C++ 標準ライブラリ: コア言語で記述されたクラスと関数のコレクションであり、C++ ISO 標準自体の一部です。
標準テンプレート ライブラリ: 標準テンプレート ライブラリ、STL
ISO C++ 標準委員会 : C++ 標準委員会
FMOD: 使いやすいクロスプラットフォーム オーディオ エンジンおよびオーディオ コンテンツ ゲーム作成ツール。
Maximilian: C++ オーディオおよび音楽デジタル信号処理ライブラリ
OpenAL: オープンソース オーディオ ライブラリ - クロスプラットフォーム オーディオ API
Opus: 完全にオープンでロイヤリティフリーの非常に汎用性の高いオーディオ コーデック
Speex: 無料のコーデック、Opus によって非推奨
Tonic: C++ による使いやすく効率的なオーディオ合成
Vorbis: Ogg Vorbis は、完全にオープンで、非独自の、ロイヤリティフリーのユニバーサル圧縮オーディオ形式です。
lisequence : 集団遺伝学データを表現および分析するための C++ ライブラリ。
SeqAn: 生物学的データの配列分析のためのアルゴリズムとデータ構造に焦点を当てています。
Vcflib: VCF ファイルを解析および処理するための C++ ライブラリ
Wham: BAM ファイル内の遺伝的構造バリアントに関連性テストを直接適用します。
bzip2 : 完全に無料、特許フリー、高品質のデータ圧縮
doboz: 高速解凍用の圧縮ライブラリ
PhysicsFS: さまざまなアーカイブへの抽象的なアクセスを提供するライブラリ。主にビデオ ゲームで使用されます。設計の一部は Quake3 のファイル サブシステムからインスピレーションを受けています。
KArchive: ファイル アーカイブ (zip や tar など) を作成、読み取り、書き込み、操作するためのライブラリ。QIODevice の一連のサブクラスを通じて、gzip 形式を使用したデータの透過的な圧縮と解凍を提供します。
LZ4: 非常に高速な圧縮アルゴリズム
LZHAM: 可逆圧縮データベース。圧縮率は LZMA に近いですが、解凍速度ははるかに高速です。
LZMA: 7z 形式のデフォルトの一般的な圧縮方法。
LZMAT: およびその高速リアルタイム可逆データ圧縮ライブラリ
Minizip: Zlib の最新のバグ修正。PKWARE ディスク スパンニング、AES 暗号化、および IO バッファリングをサポートします。
Snappy: 高速な圧縮と解凍
ZLib: 非常にコンパクトなデータ ストリーム圧縮ライブラリ
ZZIPlib: ZIP アーカイブへの読み取りアクセスを提供します。
Boost.Compute: OpenCL 用の C++ GPU コンピューティング ライブラリ
Bolt: GPU 用に最適化された C++ テンプレート ライブラリ
C++React: C++11 用のリアクティブ プログラミング ライブラリ
Intel TBB: インテル スレッディング ビルディング ブロック
Libclsph: OpenCL に基づく GPU アクセラレーション SPH 流体シミュレーション ライブラリ
OpenCL: 異種システムの並列プログラミングのためのオープン標準
OpenMP: OpenMP API
Thrust: C++ 標準テンプレート ライブラリに似た並列アルゴリズム ライブラリ
HPX: あらゆる規模の並列および分散アプリケーションに対応するユニバーサル C++ ランタイム システム
VexCL: OpenCL/CUDA 用の C++ ベクトル式テンプレート ライブラリ。
Bcrypt: クロスプラットフォームのファイル暗号化ツール。暗号化されたファイルは、サポートされているすべてのオペレーティング システムおよびプロセッサに移植できます。
BeeCrypt: 強力な機能と便利なインターフェイスを備えた高速暗号化グラフィック ライブラリ。
Botan: C++ 暗号化ライブラリ
Crypto++ : 暗号化スキーム用の無料の C++ ライブラリ
GnuPG: OpenPGP 標準の完全な実装
GnuTLS: SSL、TLS、DTLS プロトコルを実装する安全な通信ライブラリ
Libgcrypt: GnuPG ベースの暗号化グラフィック ライブラリ。
Libmcrypt: スレッドセーフで、統合された API を提供します。
LibreSSL: 無料の SSL/TLS プロトコル、2014 OpenSSL のフォーク
LibTomCrypt: 非常に包括的でモジュール式のポータブルな暗号化ツール
libsodium: 独自の意見があり使いやすい NaCI ベースの暗号化ライブラリ
Nettle: 基盤となる暗号化ライブラリ
OpenSSL: 強力な商用のフル機能のオープンソース暗号化ライブラリ。
hiberlite: Sqlite3 の C++ オブジェクト リレーショナル マッピング
LevelDB: 高速なキーと値のストア
LMDB: データベースの 4 つの基本要素に準拠する埋め込みキー/値ストア
MySQL++ : MySql の C API をカプセル化する C++ ラッパー
RocksDB: Facebook からの埋め込み Key-Value の高速ストレージ
SQLite : わずか数百 KB でプロジェクトに正しく組み込むことができる、完全に埋め込まれたフル機能のリレーショナル データベースです。
MongoDB: 分散ファイルストレージに基づくデータベース
Boost.Test: ブースト テスト ライブラリ
Catch: 非常にスタイリッシュな C++ ネイティブ フレームワークで、単体テスト、テスト駆動開発、および動作駆動開発用のヘッダー ファイルのみが含まれています。
CppUnit: JUnit から移植された C++ テスト フレームワーク
GoogleTest: Google C++ テスト フレームワーク
ig-debugheap: メモリ エラーを追跡するためのマルチプラットフォーム デバッグ ヒープ
MemTrack: C++ でのメモリ割り当ての追跡用
MicroProfile: クロスプラットフォームのネットワーク試行プロファイラー
UnitTest++: 軽量の C++ 単体テスト フレームワーク
C++ B ツリー: B ツリー データ構造に基づいてコマンド メモリ コンテナを実装するテンプレート ライブラリ
ハッシュマップ: C++ でのオープン アドレス指定ハッシュ テーブル アルゴリズムの実装
Cocos2d-x: 2D ゲーム、インタラクティブな書籍、プレゼンテーション、その他のグラフィック アプリケーションを構築するためのクロスプラットフォーム フレームワーク。
Grit: オープンワールド 3D ゲーム用の無料ゲーム エンジンを構築するコミュニティ プロジェクト。
lrrlicht: C++ 言語で書かれたオープンソースの高性能リアルタイム #D エンジン
PolyCode: C++ で実装されたゲームを作成するためのオープン ソース フレームワーク (Lua にバンドルされている)。
bgfx: クロスプラットフォーム レンダリング ライブラリ
Cairo: 複数の出力デバイスをサポートする 2D グラフィックス ライブラリ
Horde3D: 小型の 3D レンダリングおよびアニメーション エンジン
magnum: C++11 および OpenGL 2D/3D グラフィックス エンジン
Ogre 3D: C++ で書かれたシーン指向のリアルタイムで柔軟な 3D レンダリング エンジン (ゲーム エンジンではありません)
OpenSceneGraph: 高性能オープンソース 3D グラフィックス ツールキット
Panda3D: Python と C++ で書かれた 3D レンダリングとゲーム開発用のフレームワーク。
Skia: テキスト、グラフィック、画像を描画するための完全な 2D グラフィック ライブラリ
urho3d: クロスプラットフォーム レンダリングおよびゲーム エンジン。
Boost.GIL: 一般的な画像ライブラリ
CImg: 画像処理用の小規模なオープンソース C++ ツールキット
FreeImage: 一般的な画像形式や、今日のマルチメディア アプリケーションに必要なその他の形式をサポートするオープン ソース ライブラリ。
GDCM: 草の根DICOMライブラリ
ITK: クロスプラットフォームのオープンソース画像解析システム
Magick++: ImageMagick プログラムへの C++ インターフェイス
OpenCV: オープンソースのコンピュータ ビジョン ライブラリ
tesseract-ocr: OCR エンジン
VIGRA: 画像解析用の汎用 C++ コンピューター ビジョン ライブラリ
VTK: 3D コンピュータ グラフィックス、画像処理、視覚化のためのオープンソースのフリー ソフトウェア システム。
gettext : GNU gettext
IBM ICU: Unicode とグローバリゼーションのサポートを提供する C、C++、および Java ライブラリ
libiconv: 異なる文字エンコーディング間のエンコーディング変換ライブラリ
凍結: C/C++ 用の Jason 解析ジェネレーター
Jansson: Jason データをエンコード、デコード、処理するための C 言語ライブラリ
jbson: C++14 で BSON データと Json ドキュメントを構築および反復するためのライブラリ
JeayeSON: ヘッダー ファイルのみを含む非常に堅牢な C++ JSON ライブラリ
JSON++ : C++ JSON パーサー
json-parser : メモリ使用量が非常に少ないポータブルな ANSI C で書かれた JSON パーサー
json11 : ミニ C++11 JSON ライブラリ
jute : 非常にシンプルな C++ JSON パーサー
ibjson: C の JSON 解析および出力ライブラリ。あらゆるモデルと簡単に統合できます。
libjson: 軽量の JSON ライブラリ
PicoJSON: C++ での JSON 解析とシリアル化 (ヘッダー ファイルのみを含む)
Qt-Json: JSON データと QVariant 階層の間で解析するための単純なクラス
QJson : JSON データを QVariant オブジェクトにマッピングするための Qt ベースのライブラリ
RepidJSON: SAX および DOM スタイルの API を含む、C++ 用の高速 JSON 解析ジェネレーター
Boost.Log: 非常にモジュール化され拡張可能になるように設計されています
easyloggingpp: 単一のヘッダー ファイルのみを含む C++ ロギング ライブラリ。
Log4cpp: ファイル、システム ログ、IDSA、その他の場所にログを柔軟に追加する一連の C++ ライブラリ。
templog : C++ アプリケーションにログ記録を追加できる軽量の C++ ライブラリ
btsk: ゲームビヘイビアツリーランチャーツール
進化するオブジェクト: 独自の確率的最適化アルゴリズムを非常に迅速に作成するのに役立つ、テンプレート ベースの ANSI C++ 進化的コンピューティング ライブラリ。
Caffe: 高速ニューラル ネットワーク フレームワーク
CCV: C言語を中心とした最新のコンピュータビジョンライブラリ
mlpack: 拡張可能な C++ 機械学習ライブラリ
OpenCV: オープンソースのコンピュータ ビジョン ライブラリ
Recommender: 協調フィルタリングを使用した製品の推奨/提案のための C ライブラリ。
SHOGUN: ショーグン機械学習ツール
sofia-ml: 機械学習用の高速増分アルゴリズムのスイート
Armadillo: 速度と使いやすさのバランスが取れた高品質の C++ 線形代数ライブラリ。構文は MatlAB に非常に似ています
blaze: 密および疎アルゴリズム用の高性能 C++ 数学ライブラリ。
ceres-solver: 大規模で複雑な非線形最小二乗問題をモデリングおよび解決するための Google の C++ ライブラリ。
CGal: 効率的で信頼性の高いセット アルゴリズムのコレクション
CML: ゲームとグラフィックス用の無料の C++ 数学ライブラリ
Eigen: 線形代数、行列、ベクトル演算、数値解法、およびその他の関連アルゴリズムをカバーする高レベルの C++ テンプレート ヘッダー ライブラリ。
GMTL: Mathematical Graphics Template Library は、基本的なグラフィックスを広範囲に実装するためのツールのセットです。
GMP: 符号付き整数、有理数、浮動小数点数を扱う高精度計算用の C/C++ ライブラリ。
GStreamer: メディア処理コンポーネントのグラフを構築するためのライブラリ
LIVE555 ストリーミング メディア: オープン標準プロトコル (RTP/RTCP、RTSP、SIP) を使用したマルチメディア ストリーミング ライブラリ
libVLC: libVLC (VLC SDK) メディア フレームワーク
QtAV: Qt と FFmpeg をベースにしたマルチメディア再生フレームワークで、プレーヤーを簡単に作成できます。
SDL: メディア層のシンプルな直接制御
SFML: 高速でシンプルなマルチメディア ライブラリ
Box2D: 2D ゲーム物理エンジン。
Bullet: 3D ゲーム物理エンジン。
Chipmunk: 高速で軽量な 2D ゲーム物理ライブラリ
LiquidFun: 2D ゲーム物理エンジン
ODE: Open Dynamics Engine - 剛体ダイナミクスをシミュレートするためのオープンソースの高性能ライブラリ。
ofxBox2D: Box2D オープンソース フレームワーク ラッパー。
Simbody: 車両、ロボット、人間の骨格などの関節生体力学および機械システムをシミュレートするための高性能 C++ マルチボディ ダイナミクス/物理ライブラリ。
MOOS-Ivp: ロボット プラットフォーム、特に自律型船舶に自律性を提供するオープン ソース C++ モジュールのセット。
MRPT: モバイル ロボット プログラミング ツールキット
PCL: 点群ライブラリは、2D/3D 画像および点群処理のための独立した大規模なオープン プロジェクトです。
Robotics Library: ロボット ダイナミクス、動作計画、および制御を含むスタンドアロン C++ ライブラリ。
RobWork: ロボット システムのシミュレーションと制御のための C++ ライブラリのコレクション。
ROS: ロボット オペレーティング システム。ソフトウェア開発者がロボット アプリケーションを作成するのに役立つライブラリとツールを提供します。
ChaiScript: C++ 用の使いやすい組み込みスクリプト言語。
Lua: 構成ファイルおよび基本的なアプリケーション スクリプト用の小型で高速なスクリプト エンジン。
luacxx : Lua バインディングを作成するための C++11 API
SWIG : C++ コードを JavaScript、Perl、PHP、Python、Tcl、Ruby にリンクできるようにするラッパー/インターフェイス ジェネレーター
V7: 埋め込み JavaScript エンジン。
V8: あらゆる C++ アプリケーションに埋め込むことができる Google の高速 JavaScript エンジン。
Cap'n Proto: 高速データ交換フォーマットと RPC システム。
cereal : C++11 シリアル化ライブラリ
FlatBuffers: メモリ効率の高いシリアル化ライブラリ
MessagePack: JSON などの C/C++ 用の効率的なバイナリ シリアル化ライブラリ
ProtoBuf: プロトコル バッファ、Google のデータ交換形式。
SimpleBinaryEncoding : 低遅延アプリケーション向けに、アプリケーション情報をバイナリ形式でエンコードおよびデコードします。
Thrift: C++、Java、Python、PHP、C#、その他多くの言語で使用される効率的なクロスランゲージ IPC/RPC。もともと Facebook によって開発されました。
libvpx: VP8/VP9 エンコードおよびデコード SDK
FFMpeg: ビデオおよびオーディオ ストリームの記録、変換のための完全なクロスプラットフォーム ソリューション。
libde265: h.265 ビデオ コーデックのオープン実装。
OpenH264: オープンソースの H.364 コーデック。
Theora: 無料のオープンソースのビデオ圧縮形式。
LibXml++: C++ 用の XML パーサー
PagiXML: XPath をサポートする C++ 用の軽量でシンプルかつ高速な XML パーサー。
RapidXML: 使いやすさ、移植性、適度な W3C 互換性を維持しながら、最速の XML パーサーの作成を試みます。
TinyXML: 他のプロジェクトに簡単に統合できる、シンプルで小型の C++ XML パーサー。
TinyXML2: 他のプロジェクトに簡単に統合できる、シンプルで高速な C++ CML パーサー。
TinyXML++ : C++、テンプレート、例外、より優れた例外処理の多くの利点を活用する、TinyXML へのまったく新しいインターフェイスです。
Xerces-C++: 移植可能な C++ のサブセットで書かれた XML 検証パーサー。
スレッドローカル
static_assert
nullptr
例外はありません
デクタイプ
constexpr
char16_t
char32_t
整列
整列
自動
クラス
デフォルト
消去
輸出
外部
列をなして
可変
サイズの
構造体
を使用して
is_void
is_integral
is_floating_point
is_array
is_enum
is_union
is_class
is_function
is_pointer
is_lvalue_reference
is_rvalue_reference
is_member_object_pointer
is_member_function_pointer
is_fundamental
is_算術
is_スカラー
オブジェクトです
is_compound
is_reference
is_member_pointer
is_const
is_volatile
is_trivial
is_trivially_copyable
is_standard_layout
is_literal_type
は空です
is_ポリモーフィック
is_abstract
is_signed
is_unsigned
is_constructible
is_trivially_constructible
is_nothrow_constructible
is_default_constructible
is_trivially_default_constructible
is_nothrow_default_constructible
is_copy_constructible
is_trivially_copy_constructible
is_nothrow_copy_constructible
is_move_constructible
is_trivially_move_constructible
is_nothrow_move_constructible
is_assignable
is_trivially_assignable
is_nothrow_assignable
is_copy_assignable
is_trivially_copy_assignable
is_nothrow_copy_assignable
is_move_assignable
is_trivially_move_assignable
is_nothrow_move_assignable
破壊可能です
自明的に破壊可能
is_nothrow_destructible
has_virtual_destructor
std::array
std::forward_list
std::begin
std::end
std::移動
コンテナの初期化
置く
std::unowned_map
std::unowned_multimap
std::unordered_set
std::unowned_multiset
std::make_tuple
std::get
std::ネクタイ
std::hash<std::string>
std::hash<std::u16string>
std::hash<std::u32string>
std::hash<std::wstring>
std::hash<std::error_code>
std :: hash <std :: bitset>
std :: hash <std :: type_index>
std :: hash <std :: vector <bool >>
std::shared_ptr
std :: weak_ptr
std::unique_ptr
auto_ptr(非推奨)
basic_regex
sub_match
match_results
CV適格機能
引用資格
std :: function
std :: bind
std :: bad_function_call
mem_fn
タイプエイリアス
クラスメンバーの初期化
ファンクタ
委任コンストラクター
コンストラクターを継承します
移動コンストラクター
割り当てオペレーターを移動します
アングルブラケット ">"
エイリアステンプレート
外部テンプレート
Variadicテンプレート
デフォルトのテンプレートパラメーター
STD :: Atomic <Bool>
STD :: Atomic <Char>
STD :: Atomic <署名char>
std :: atomic <unsigned char>
STD :: Atomic <Short>
std :: atomic <unsigned short>
std :: atomic <int>
std :: atomic <unsigned int>
STD :: Atomic <long>
std :: atomic <unsigned long>
STD :: Atomic <Long>
STD :: Atomic <unsigned long>
STD :: Atomic <char8_t>
STD :: Atomic <char16_t>
STD :: Atomic <char32_t>
std :: atomic <wchar_t>
std :: atomic <std :: int8_t>
std :: atomic <std :: uint8_t>
std :: atomic <std :: int16_t>
std :: atomic <std :: uint16_t>
std :: atomic <std :: int32_t>
std :: atomic <std :: uint32_t>
std :: atomic <std :: int64_t>
std :: atomic <std :: uint64_t>
std :: atomic <std :: int_least8_t>
std :: atomic <std :: uint_least8_t>
std :: atomic <std :: int_least16_t>
std :: atomic <std :: uint_least16_t>
std :: atomic <std :: int_least32_t>
std :: atomic <std :: uint_least32_t>
std :: atomic <std :: int_least64_t>
std :: atomic <std :: uint_least64_t>
std :: atomic <std :: int_fast8_t>
std :: atomic <std :: uint_fast8_t>
std :: atomic <std :: int_fast16_t>
std :: atomic <std :: uint_fast16_t>
std :: atomic <std :: int_fast32_t>
std :: atomic <std :: uint_fast32_t>
std :: atomic <std :: int_fast64_t>
std :: atomic <std :: uint_fast64_t>
std::スレッド
std :: mutex
std :: lock
std :: call_once
STD :: Atomic
std :: cond_ition_variable
std :: async
揮発性の
std ::未来
std :: thread_local
STD :: Exception_Ptr
std :: make_exception_ptr
std :: current_exception
std :: rethrow_exception
std :: nested_exception
std :: throw_with_nested
std :: rethrow_if_nested
std :: error_category
std :: generic_category
std :: error_condition
std :: errc
std :: error_code
STD :: System_Error
構文:__pragma(文字列リテラル)
_pragmaオペレーター
_cplusplusマクロ
(x:範囲)のループ用
alignof
整列
std :: alignment_of
std :: aligned_storage
std :: max_align_t
std :: align
明示的なキーワード
構文:static_assert(constant expression、 "prompt string")
静的アサート
数値制限
生の文字列
トレースリターンタイプ構文
拡張フレンドの構文
拡張整数
無制限の協会
インラインネームスペース
ユーザー定義のリテラル
強くタイプされた酵素
ランダムデバイス
std :: ref and std :: cref
constexpr
ラムダの表現
nullptr
タイプの狭窄を防ぎます
イニシャルライザーリスト——Initializerリスト
initializer_list(入力パラメーターとして)
統一された初期化構文とセマンティクス
ポッド
長い長い
セマンティクスを移動します
右辺値参照
C99機能
一般化されたsfinaeルール
タイプがstd :: nullptr_tであるかどうかを確認してください
is_final(タイプが最終クラスタイプかどうかを確認)
交換(実際のパラメーターを新しい値に置き換え、以前の値を返します)
integer_sequence(コンパイルタイム整数シーケンスの実装)
rbegin(コンテナまたはアレイを指す逆イテレータを返します)
crbegin(コンテナまたはアレイを指す逆イテレータを返します)
rend(コンテナまたはアレイのリバーステールイテレーターを返します)
CREND(コンテナまたはアレイの逆テールイテレーターを返します)
make_reverse_iterator(引数から推定されたタイプでstd :: reverse_iteratorを作成)
begin(コンテナまたはアレイの始まりを指すイテレーターを返します)
cbegin(コンテナまたはアレイの始まりを指すイテレーターを返します)
終了(コンテナまたはアレイの端を指すイテレーターを返します)
CEND(コンテナまたはアレイの端を指すイテレーターを返します)
rbegin(コンテナまたはアレイを指す逆イテレータを返します)
crbegin(コンテナまたはアレイを指す逆イテレータを返します)
rend(コンテナまたはアレイのリバーステールイテレーターを返します)
CREND(コンテナまたはアレイの逆テールイテレーターを返します)
登録する
バイト(バイトタイプ)
is_aggregate(タイプが集約型であるかどうかをチェックします)
is_swappable_with(タイプのオブジェクトが同じまたは異なる型のオブジェクトと交換できるかどうかをチェックします)
is_swappable(タイプのオブジェクトを同じタイプのオブジェクトと交換できるか、異なるタイプと交換できるかどうかを確認)
is_nothrow_swappable_with(タイプのオブジェクトが同じまたは異なる型のオブジェクトと交換できるかどうかをチェックします)
is_nothrow_swappable(タイプのオブジェクトを同じタイプのオブジェクトと交換できるか、別のタイプと交換できるかどうかをチェック)
is_invocable(指定された引数タイプでタイプを呼び出すことができるかどうかをチェックします(std :: invoke)
is_invocable_r(指定された引数タイプでタイプを呼び出すことができるかどうかを確認します(std :: invoke)
is_nothrow_invocable(指定された引数タイプでタイプを呼び出すことができるかどうかをチェックします(std :: invoke)
is_nothrow_invocable_r(指定された引数タイプでタイプを呼び出すことができるかどうかを確認します(std :: invoke)
invoke_result(実際のパラメーターのセットを使用して呼び出し可能なオブジェクトを呼び出す結果タイプを導き出す)
void_t(変数パラメーターエイリアステンプレート)
接続詞(可変パラメーターの論理的およびメタ機能)
分離(可変パラメーターを使用した論理またはメタ機能)
ndisjunctionegation(論理非エレメント関数)
Integral_Constant(指定された値で指定されたタイプのコンパイル時間定数)
as_const(そのパラメーターへのconst参照を取得)
適用します(引数のタプルで関数を呼び出してください)
make_from_tuple(引数のタプルからオブジェクトを構築する)
オプション(オブジェクトのラッパーを保持する場合と保持しない場合があります)
make_optional(オプションのオブジェクトを作成)
std :: swap(std :: optional)(STD :: SWAP ALGORITHM)
std :: hash <std :: optional>(STD :: HASH ALGORITHM)
nullopt_t(初期化された状態を持つオプションのタイプインジケーター)
bad_optional_access(値なしでオプションへのチェックされたアクセスを示す例外)
nullopt(nullopt_tタイプオブジェクト)
バリアント(タイプセーフ識別可能な組合)
訪問(1つ以上のバリアントが保持する各引数で提供された関数オブジェクトを呼び出してください)
holds_alternative(バリアントが現在特定のタイプを保持しているかどうかをチェック)
std :: get(std :: variant)(指定されたインデックスまたはタイプでバリアントの値を読む(タイプが一意の場合)、エラーに例外を投げます)
get_if(指定されたインデックスまたはタイプ(一意の場合)を使用して、尖ったバリアントの値に対するポインターを取得し、エラー時にヌルポインターを返します)
std :: swap(std :: variant)(STD :: swap algorithm)
モノステート(非エフォルト構造化可能なバリアントの最初のオプションオプションとして使用されるプレースホルダータイプ)
bad_variant_access(バリアントの値に違法にアクセスするときにスローされる例外)
variant_size(コンパイル時にバリアントオプションリストのサイズを取得)
variant_size_v(コンパイル時にバリアントオプションリストのサイズを取得)
variant_alternative(コンパイル時に添え字で指定されたオプションのタイプを取得します)
variant_alternative_t(コンパイル時に添え字で指定されたオプションのタイプを取得します)
std :: hash <std :: variant>(専門のstd :: hash algorithm)
variant_npos(違法バリアントの添え字)
任意(コピー構築可能な(模倣構造)タイプのインスタンスを保持できるオブジェクト)
std :: swap(std :: any)(std :: swap algorithm)
any_cast(含まれているオブジェクトへのタイプセーフアクセス)
make_any(任意のオブジェクトを作成)
bad_any_cast(タイプが一致しないときに値で返されるany_castによってスローされる例外)
to_chars(整数またはフローティングポイント値を文字シーケンス画像に変換)
from_chars(文字シーケンスを整数または浮動小数点値に変換)
chars_format(std :: to_charsおよびstd :: from_charsで使用される形式を指定)
空(コンテナが空であるかどうかを確認)
データ(基礎となる配列へのポインタを取得)
insert_or_assign(要素を挿入するか、キーが既に存在する場合は現在の要素に割り当てます)
try_emplace(キーが存在しない場合は、キーが存在する場合は何もしない場合、所定の位置に挿入します)
抽出(別のコンテナからノードを放出)
マージ(別のコンテナからノードを結合)
insert_or_assign(要素を挿入するか、キーが既に存在する場合は現在の要素に割り当てます)
try_emplace(キーが存在しない場合は、キーが存在する場合は何もしない場合、所定の位置に挿入します)
抽出(別のコンテナからノードを放出)
マージ(別のコンテナからノードを結合)
<h5 id = "user-content-cpp_headfile_initializer_list" tabindex = "-1" class = "head