This project reimplements core components of the C++ STL from scratch. Unlike the official libcxx or libstdc++, NaiveSTL focuses on:
- β¨ Readability: Minimal template metaprogramming, clear structure.
- π Educational value: Aimed at developers who want to understand STL internals.
- βοΈ Modern C++: Based on C++17 to reflect recent practices.
- π§ͺ Test-driven: With unit tests and exception safety validations.
- π― motivation: Since many teams are still using C++11/14 in industrial programming, and need a lightweight STL in realistic development.
- π¦ Containers:
vector, π§:constexpr vector. - π§΅ Allocator support: Custom allocator system.
- π οΈ Exception safety: RAII + rollback mechanisms tested under
ThrowOnNmodel. - π¦ CI-integrated: GitHub Actions + ASan to validate correctness and memory safety.
- π STL compatibility: Interfaces/Exception guarantee closely match standard STL.
Inspired by:
- libcxx source code (LLVM)
- https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3372r0.htmlcpp17
- Working Draft, Standard for Programming Language C++Modern C++ STL design articles(N4659)