This is a repository of modern coding showcases and solutions to various popular programming problems, written in C90, C++17, C++20, and C++23.
For some of the said problems, multiple solutions of varying efficiencies and trade-offs are provided, along with benchmarks.
All solutions are driven by extensive automated testing, in addition to being statically and dynamically analyzed, and compiled under strict rules with the latest Clang, GCC, and MSVC compilers.
The following is a partial list of standards, practices, paradigms, and tools leveraged by this project:
- C (standard C90) and C++ (standard C++17, C++20, and C++23)
- The C and C++ standard libraries
- Strongly-typed approach, leveraging C++ templates and C++20 concepts
- Const correctness where applicable--except for fields
- Functional programming
- Strict standard conformance and strict compilation rules
- Static analysis with Clang Tidy and Microsoft C++ Code Analysis
- Dynamic analysis
- LLVM-based sanitizer tools
- CMake
- Clean Git history and configuration
- Extensive testing using Catch2 and CTest
- Development dependency management using vcpkg
- Own opinionated Clang Format configuration
- Conventional Commits
- GitHub Actions CI
- Benchmarking using nanobench
- Microsoft DevSkim
- EditorConfig
- Markdown
- Diagraming with Mermaid
The provided attempted solutions are not guaranteed to be correct, safe, secure, optimal, or suitable for use in production. The code and coding style may, or may not, follow best practice guidelines.
Problem copyrights are reserved to their respective owners.
Solution code is released under an MIT-style license. Copyright © Omar Boukli-Hacene. All rights reserved.
SPDX license identifier: MIT.
Written for the joy of it 🪐