Skip to content
/ naiveSTL Public

# NaiveSTL πŸš€ A simple and educational reimplementation of the C++ Standard Template Library (STL) β€” for learning, hacking, and mastering STL internals.

ijpq/naiveSTL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

naiveSTL

CI

Why NaiveSTL?

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.

Features

  • πŸ“¦ Containers: vector, 🚧: constexpr vector.
  • 🧡 Allocator support: Custom allocator system.
  • πŸ› οΈ Exception safety: RAII + rollback mechanisms tested under ThrowOnN model.
  • 🚦 CI-integrated: GitHub Actions + ASan to validate correctness and memory safety.
  • πŸ” STL compatibility: Interfaces/Exception guarantee closely match standard STL.

Acknowledgements

Inspired by:

About

# NaiveSTL πŸš€ A simple and educational reimplementation of the C++ Standard Template Library (STL) β€” for learning, hacking, and mastering STL internals.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published