STC (Smart Template Containers) is a mature, type-safe generic container and algorithm library for C99/C11. It is not an application or service; it is a library component that developers link into systems programs, embedded code, games, and simulations. The library provides macro-instantiated generic containers (vec, list, deque, stack, queue, priority queue, hash map, hash set, sorted map, sorted set, bitset), string types with small-string optimization (cstr, csview), multi-dimensional array views (cspan), smart pointers (box, arc, rc), a regular expression engine (cregex), a stackful coroutine framework, random number generators, and algorithms such as sorting, filtering, and binary search. The code implements the actual functionality; the README and docs describe usage, but the headers and src tree are the ground truth. The architecture is a hybrid header-only and compiled library. Templated containers are generated at compile time by a sophisticated macro trait system (via i_key, i_type, c_pro_key, etc.), while non-templated facilities like cstr, cregex, cspan, and random are partially implemented in src/ and linked as libstc. Public entry points are the headers under include/stc/; the build supports both Makefile and Meson, with examples and tests under examples/ and tests/. External dependencies are minimal, essentially the C11 standard library only, with compiler-specific pragmas and intrinsics for GCC, Clang, MSVC, and TCC. Data flows are primarily in-memory: containers own and manage elements, string operations transform UTF-8 text, regex compiles and executes NFA graph matching, and coroutines yield and resume across tasks. The codebase demonstrates strong engineering practice: a custom test harness (ctest.h), CI with sanitizers across three OSes, extensive API documentation, and a large examples corpus. The macro-based generic system is clever and powerful but carries the usual debugging and tooling complexity; deprecated aliases still exist from API churn. Overall this is a high-quality, reusable C library with several notably self-contained subsystems that could be lifted into other projects.
This repository is a curated, structured dataset of C and C++ standard features (from C99 to C++29) with per-compiler support status across multiple toolchains (GCC, Clang, MSVC, Xcode, etc.). It includes YAML data files defining features, toolchain releases, and frontend metadata, along with a C++ validation tool that enforces schema compliance and semantic consistency (e.g., verifying that referenced tool versions exist and issue trackers are properly used). The dataset is designed to power a reference website (cppstat) and is accompanied by detailed Markdown explanations for each feature. While the primary artifact is the data itself, the validator and CI pipeline demonstrate strong data engineering practices, making the repository a reliable source for compiler feature support information.