コンテンツにスキップ

最終更新:2026-10-12

プロジェクト概要

1. プロジェクトの概要

C++ 那些事 は、C++ の初学者から中級開発者までを対象としたオープンソース学習プロジェクトです。学習者が C++ の基礎入門から高度な内容へと進めるよう、文法の基礎、オブジェクト指向プログラミング、テンプレートプログラミング、STL の使い方から、マルチスレッド・並行処理、メモリ管理、パフォーマンス最適化といった高度なトピックまでを網羅しています。さらに、いくつかの古典的なオープンソースライブラリやフレームワークのソースコードも深く分析しており、実際のプロジェクトで C++ がどう使われているかをより深く理解できるよう支援します。

2. プロジェクトの目標

  • 入門から上級まで:初学者に体系的な学習パスを提供し、ゼロの状態から C++ の中核概念と高度な機能を段階的に習得できるよう支援します。
  • 面接対策:求職者向けに、よく出る C++ 面接問題の解説と実践演習を提供し、面接で良い結果を出せるよう支援します。
  • ソースコード解析:古典的なオープンソースプロジェクトのソースコードを分析することで、C++ のデザインパターンと実装原理を深く理解できるよう支援します。
  • マルチスレッドと並行処理:C++ におけるマルチスレッドプログラミングと並行制御を深く掘り下げ、効率的で安全な並行プログラムを書けるよう支援します。
  • パフォーマンス最適化:C++ におけるパフォーマンス最適化のテクニックを紹介し、効率的なコードを書けるよう支援します。

3. プロジェクトの内容

C++ 那些事 プロジェクトは内容が非常に充実しており、C++ のあらゆる側面をカバーしています。主に以下のモジュールで構成されています:

  • 基礎から上級へ

    • キーワードと機能:const、static、this、inline、sizeof、virtual、volatile、explicit、friend、using、::、enum、decltype などのキーワードの詳細な解説。
    • 関数とポインタ:関数ポインタ、純粋仮想関数と抽象クラス、vptr_vtable など。
    • データ構造:struct、union、ビットフィールド、参照とポインタの違いなど。
    • C 言語で C++ の多態性を実現:C 言語を使って C++ の多態(ポリモーフィズム)機能を実現します。
    • マクロとアサーション:マクロの定義と使用方法、assert の使用場面。
  • 実践シリーズ

    • 10 日間集中特訓:10 日間の集中的な演習で C++ プログラミング能力をすばやく向上させます。
    • 重点実践演習:C++ の重要ポイント・難所を対象とした実践演習で、学んだ知識を定着させます。
  • STL ソースコード解析

    • コンテナ:array、deque、queue、stack、list、vector、rb_tree、set、multiset、map、multimap、hashtable、unordered_map などのコンテナのソースコード解析。
    • イテレータと特性:iterator、traits、typename など。
    • EBO 最適化:STL 設計における空基底クラス最適化(EBO)のテクニック。
  • C++2.0 の新機能

    • C++11 の新機能:自動型推論、Lambda 式、右辺値参照、スマートポインタなど。サイト内の C++11 特集 もご覧ください。
    • C++17 / C++20:C++17 特集、C++20 特集。
  • 発展トピック

    • 言語機構の深掘り:mutable、const 系のまとめ、ABI、末尾再帰など(ナビゲーションの「基礎から上級へ → 言語機構の深掘り」を参照)。
    • メモリとデバッグ、パフォーマンス計測、プロジェクト実践、読み物とテクニック:独立したナビゲーション欄。AddressSanitizer、Benchmark、pybind11、gRPC などの実践記事を含みます。
  • デザインパターン

    • よくあるデザインパターン:シングルトンパターン、ファクトリパターン、オブザーバーパターンなどの C++ での応用。
  • 並行プログラミング

    • マルチスレッドとマルチプロセス:std::thread、std::async、std::mutex、std::condition_variable などのマルチスレッドプログラミング技術。
    • C++ Concurrency in Action:C++ における並行プログラミングのモデルと実践を深く掘り下げます。
  • C++ イディオム

    • プログラミングスタイルとイディオム:C++ でよく使われるプログラミングスタイルとイディオムを探求し、よりエレガントなコードを書けるよう支援します。
  • 学習コース

    • 極客時間『現代 C++ 実戦 30 講』:おすすめの学習リソース。モダン C++ を体系的に学ぶのに役立ちます。
  • ツール編

    • デバッグと出力ツール:dbg-macro、rr などのデバッグツールの使い方。
    • コンテナ簡易出力ツール:コンテナの出力を簡略化するツール。
    • コンパイル過程の観察:ツールを使って C++ コードのコンパイル過程の変化を観察します。

4. プロジェクトの特徴

  • 体系的な学習パス:基礎から上級まで内容が段階的に進められるため、さまざまなレベルの学習者に適しています。
  • 理論と実践の組み合わせ:理論的な解説だけでなく、大量のコード例と実践プロジェクトも用意されています。
  • ソースコードの深い解析:古典的なオープンソースプロジェクトのソースコードを分析し、C++ の設計と実装を深く理解できるよう支援します。
  • マルチスレッドと並行処理:C++ における並行プログラミングを深く考察し、効率的で安全な並行プログラムを書けるよう支援します。
  • 面接重視:よくある面接問題の解説を提供し、求職者の面接準備をサポートします。

5. プロジェクトのリソース

  • オンライン学習サイト:C++那些事
  • WeChat 公式アカウント:光城
  • Bilibili 動画:未来的光城。プロジェクトの内容は Bilibili にも同期公開されており、動画形式で視聴しやすくなっています。

6. 参加方法

C++那些事 はオープンソースプロジェクトであり、多くの開発者のコントリビューションを歓迎します。以下の方法で参加できます:

  • Star と Fork:このプロジェクトが役に立つと思ったら、GitHub で Star や Fork をしていただけると嬉しいです。
  • PR の提出:良いコンテンツや改善の提案がある場合は、Pull Request の提出を歓迎します。
  • フィードバックと提案:使用中に問題が発生した場合や何か提案がある場合は、プロジェクトの Issue でお知らせください。

7. 今後の計画

  • 高度なトピックの拡充:C++20 の新機能、メタプログラミング、コンパイル時計算などを追加予定です。
  • 実践プロジェクトの拡充:より多くの実践プロジェクトを通じて、学んだ知識を実際の開発に活用できるよう支援します。
  • コミュニティづくり:より活発なコミュニティを築き、開発者同士の交流と共有を促進します。

8. おわりに

C++那些事 は、C++ 学習者が入門から上級へと進むことを支援するオープンソースプロジェクトです。初心者であっても、経験を積んだ開発者であっても、自分に合った学習リソースがきっと見つかります。このプロジェクトを通じて、より多くの方が C++ を習得し、実際の開発で自在に活用できるようになれば幸いです。

皆さんの Star、Fork、PR をお待ちしています。一緒に C++ コミュニティの発展を推し進めましょう!

9. 作者について

  • WeChat:gcxzhang で検索

  • WeChat 公式アカウント

プロジェクト概要
知識星球
wechat
WeChat 公式アカウント
  • ご支援
alipay
Alipay
wechat
WeChat

コメント