| Repository | Description |
|---|---|
| Utilities | |
| CppUtilities | Simple services shared by many C++ programs; drop the CppUtilities folder into a project and include headers for the needed services. |
| FileUtilities | Operations on file text common to multiple programs: adding line numbers, reading specified contiguous lines, and displaying parts of file text. |
| Testing | Demonstrates a sequence of test cases covering construction, unit, regression, and performance testing for multi-package C++ projects. |
| Logger | Logging helper functions for recording program activity to console or file within C++ applications. |
| Tools | |
| Duplicates | Finds all files whose names match one or more files in other directories, using each file name and path only once to save space and CPU. |
| FileDates | Reports all files matching specified patterns in a directory tree, sorted by file date. |
| FileSizes | Reports all files matching specified patterns in a directory tree, sorted by file size. |
| FindFiles | Locates files or directories whose names match a specified regular expression, with an option for recursive search. |
| CodeWebifier | Converts source code text into an HTML fragment by escaping markup characters and wrapping in pre tags. |
| PrettyPrint | WinForms application that prints text files in landscape mode with line numbers using HP's Printer Control Language (PCL). |
| Components | |
| CppBlockingQueue | Thread-safe message queue that blocks on dequeue when empty; designed for passing messages between threads in concurrent systems. |
| FileManager | Five directory navigator implementations (Naive, Template, Inheritance, Events, Provider) that all perform the same DFS traversal in different ways. |
| CppProperties | Implements property-like encapsulated getter/setter access for C++ class members using templates and specialization. |
| ThreadPool | A blocking queue accepting callable workitems dispatched and executed by a fixed set of worker threads. |
| CppNoSqlDb | Key/value store modeled after noSQL databases, favoring flexibility, horizontal scalability, and performance with large datasets. |
| Process | C++ classes for managing Windows processes, modeled after the .Net Process class, filling the gap left by the sparse standard library support. |
| CppConcurrentFileAccess | Small library for opening, using, and closing files safely in a concurrent multi-reader/writer environment. |
| CppLexicalScanner | Two packages - Tokenizer and SemiExp - that extract words and semi-expressions from a file or string stream for use in parsing. |
| RetryWrapper | Attempts to open a resource (file stream, socket, etc.) that may fail; retries after a sleep interval and returns the result as an optional. |
| Libraries | |
| FileSystem-Windows | File, FileInfo, Directory, and Path classes in the FileSystem namespace, modeled after C# System.IO classes, for managing Windows directory contents. |
| Sockets-Windows | Wraps Windows TCP socket facilities for sending byte streams between processes or machines, handling buffer behavior for each receiver. |
| XmlDocument | Class hierarchy for efficiently building, modifying, and interpreting XML models, filling the gap left by the sparse C++ standard libraries. |
| CppGraph | Generic Graph<V,E> for capturing relationships such as package dependencies, with Vertex and Edge template parameters. |
| Projects | |
| CppTextFinder | Recursive, regex-based file-content search tool written in C++17; walks a directory tree and prints every file whose content contains a match. |
| CppPageValidator | Checks HTML files for structural correctness, reporting violations of eight structural rules with precise line and column locations. |
| CppParser | Executes static rule-based code parsing on a specified directory tree and displays results as an Abstract Syntax Tree. |
| CppCodeAnalyzer | Executes static type-based code analysis on a directory tree, evaluating metrics and building an Abstract Syntax Tree of results. |
| CppCommWithFileXfer | Socket-based asynchronous message-passing channel where each message carries To/From endpoint attributes enabling conversational communication. |
| CppHttpClientServer | Minimal HttpClient and HttpServer prototype, kept as small and simple as practical for easy use in distributed applications. |
| Demonstration Code | |
| CMakeDemo | Basic demos for building C++ libraries and executables with CMake, the cross-platform script-driven build utility. |
| CppBasicDemos | Basic C++ syntax demos including pointers, references, lambdas, callable objects, classes, and standard library use. |
| STR | Illustrates how to build a value type by implementing default, copy, and move constructors, copy/move assignment, and a destructor. |
| CompoundObjects | Composite structures built from the four C++ class relationships: Inheritance, Composition, Aggregation, and Using. |
| ObjectFactories | Demonstrates binding to interface and factory abstractions so clients depend only on invariant interfaces, not varying implementations. |
| TemplateTechniques | Template class syntax, specialization, and template template parameters with basic and advanced examples. |
| STL-Containers | Simple demonstrations for each STL container: array, deque, list, map, queue, set, stack, string, unordered_map, unordered_set, and vector. |
| IOStreams | Demonstrates the std::iostream library for reading and writing to console, files, and stringstreams, covering the ios class hierarchy. |
| CppThreads | Thread usage demos and Task examples: concurrency, techniques, callbacks, async tasks, blocking queue, and lock performance. |
| ProcsAndThreads | Demonstrations of collaborating processes that internally spawn threads to handle inter-process communication. |
| Interop | Examples of interoperation between C++, C++/CLI, and C# components. |
| CppModels | Complete runnable code examples used in C++ Models videos, covering class structure, relationships, templates, and helper code. |
| CppStory | Twelve-chapter tutorial on C++ covering basics, classes, relationships, templates, and libraries with example code throughout. |