Awesome Modern C++
A collection of resources on modern C++.
The goal is to collect a list of resources to help people learn about
and leverage modern C++11 and beyond.
Contributing
To add, remove or change things on the list:
please submit a pull request to the GitHub repository.
Books
For a comprehensive guide to C++ books see the
Stackoverflow Definitive C++ Book Guide and List.
Community
Find the latest C++ news and updates:
Listen to the latest C++ podcasts:
Read the latest C++ standard proposals:
Discuss everything related to C++:
Ask your C++ questions:
Maybe your question was already answered in a FAQ?:
Go to one of the many C++ conferences:
Find C++ user groups:
Talks
TODO curate list of good talks on how to simplify code using C++11/17/20 features
Start with SG20 Education and Recommended Videos for Teaching C++.
Blogs
Websites
Project Starter Templates
- ModernCppStarter - A template for kick-starting modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management and more.
- modern-cpp-template - A template for modern C++ projects using CMake, Clang-Format, CI, unit testing and more, with support for downstream inclusion.
- cmake_template - A template CMake project to get you started with C++ and tooling.
- Pitchfork - Pitchfork is a Set of C++ Project Conventions.
Libraries
This is not supposed to be a comprehensive list of all C and C++
libraries. It is a list of high-quality modern libraries with general
applicability (serialization, database, testing, etc) or high-quality
libraries with novel use of new C++ features.
Kitchensink / Framework
- abseil - Abseil is an open-source collection of C++ code (compliant to C++11) designed to augment the C++ standard library.
- Boost - Collection of C++ libraries.
- Folly - Facebook Open-source Library.
- POCO - The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.
- nonstd-lite - Parent of *-lite repositories, a migration path to post-C++11 features for pre-C++11 environments.
- xtd - Modern C++17/20 framework to create console (CLI), forms (GUI like WinForms) and tunit (unit tests like Microsoft Unit Testing Framework) applications on Windows, macOS, Linux, iOS and android.
Testing
- Approval Tests for C++ - Native ApprovalTests for C++ on Linux, Mac and Windows.
- autocheck - QuickCheck and SmallCheck clones for C++.
- Bandit - A header-only framework for C++11 that wants to make working with unit tests a pleasant experience.
- Boost:UT - C++20 μ(micro)/Unit Testing framework, single-header, without need for macros.
- Boost.Test - Boost testing framework.
- Catch 🔥 - A modern, C++-native, header-only, framework for unit-tests, TDD and BDD.
- clean-test - A modern C++-20 testing framework.
- doctest 🚀 - The fastest feature-rich C++11/14/17/20 single-header testing framework for unit tests and TDD.
- Fakeit - C++ mocking made easy. A simple yet very expressive, headers only library for c++ mocking.
- Googletest - Google Testing and Mocking Framework.
- Mull - Practical mutation testing tool for C and C++
- rapidcheck - QuickCheck clone for C++.
- snitch - Lightweight C++20 testing framework.
Benchmarking
Libraries and frameworks for creating micro-benchmarks.
- Celero -
C++ Benchmark Authoring Library/Framework.
- Google Benchmark 🌟 - A microbenchmark support library.
- hayai - the C++ benchmarking framework.
- [Nonius](http