Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-modern-cpp
A collection of resources on modern C++
https://github.com/rigtorp/awesome-modern-cpp
Last synced: 5 days ago
JSON representation
-
Books
- A Tour of C++
- The C++ Programming Language
- Effective Modern C++
- Overview of the New C++
- C++ Concurrency in Action - Reference and guide to writing multi-threaded code with standard C++.
- C++17 - The Complete Guide - Giving guidance on how to use Language and Library Features of C++17.
- Professional CMake - A practical guide for using CMake to build your C++ projects.
- Modern C++ Tutorial: C++ 11/14/17/20 On the Fly - The book claims to be "On the Fly". Its intent is to provide a comprehensive introduction to the relevant features regarding modern C++ (before 2020s).
- Stackoverflow Definitive C++ Book Guide and List
- C++ Core Guidelines - Guidelines for using modern C++.
- A Tour of C++
- C++ Concurrency in Action - Reference and guide to writing multi-threaded code with standard C++.
-
Community
-
- News, Status & Discussion about Standard C++
- CppCast - The first podcast by C++ developers for C++ developers!
- Cpp.chat - Comments on c++ and issues of interest to c++ programmers.
- C++ Weekly - Educational videos by Jason Turner.
- C++ Standards Committee Papers
- r/cpp - The C++ subreddit.
- CoreHard Telegram group
- r/cpp_questions - A subreddit for C++ questions and answers.
- Stackoverflow C++ - Stackoverflow questions about C++.
- C++ Super-FAQ
- C++11 FAQ
- List of upcoming and past C++ conferences
- Meeting C++ list of user groups
- List of user groups in the C++ Super-FAQ
- C/C++ meetups
- C++ Weekly - Educational videos by Jason Turner.
- C++ Slack
-
Talks
- SG20 Education and Recommended Videos for Teaching C++
- CppCon Talks - Talks from the C++ Conference.
- CppCon 2014: Bjarne Stroustrup "Make Simple Tasks Simple!"
- CppCon 2014: Herb Sutter "Lock-Free Programming (or, Juggling Razor Blades), Part I"
- CppCon 2014: Herb Sutter "Lock-Free Programming (or, Juggling Razor Blades), Part II"
- CppCon 2014: Scott Meyers "Type Deduction and Why You Care"
- CppCon 2015: Bjarne Stroustrup "Writing Good C++14"
- CppCon 2015: Herb Sutter "Writing Good C++14... By Default"
- CppCon 2016: Chandler Carruth “Garbage In, Garbage Out: Arguing about Undefined Behavior..."
- CppCon 2016: Herb Sutter "Leak-Freedom in C++... By Default."
- CppCon 2017: Jason Turner "Practical C++17"
- CppCon 2018: Jonathan Boccara “105 STL Algorithms in Less Than an Hour”
- code::dive conference 2014 - Scott Meyers: Cpu Caches and Why You Care - CPUCachesHandouts.pdf))
- code::dive conference 2015 - Andrei Alexandrescu - Writing Fast Code I - ecros.pl/event/codedive/files/presentations/2015/FastCode-handouts.pdf))
- code::dive conference 2015 - Andrei Alexandrescu - Writing Fast Code II - ecros.pl/event/codedive/files/presentations/2015/FastCode-handouts.pdf))
- C++Now Talks - Talks from the C++Now conference.
- Going Native 2012: Variadic Templates are Funadic
- Going Native 2013: Stephan T Lavavej - "Don't Help the Compiler"
- Going Native 2013: Sean Parent - "C++ Seasoning"
- CppCon 2016: Herb Sutter "Leak-Freedom in C++... By Default."
- CppCon 2016: Chandler Carruth “Garbage In, Garbage Out: Arguing about Undefined Behavior..."
-
Blogs
- Andrzej's C++ blog - Guidelines and thoughts about C++.
- Anthony Williams' blog
- Embedded in Academia - John Regehr, Professor of Computer Science, University of Utah, USA.
- Eric Niebler
- Fluent C++ - Expressive Code in C++.
- Guru of the Week (new posts) - A regular series of C++ programming problems created and written by Herb Sutter.
- Guru of the Week (older posts) - Older Guru of the Week posts.
- Marshall's C++ Musings
- Paul Fultz II's Blog
- Preshing on Programming
- Simplify C++ - Write clean and maintainable C++.
- Sticky Bits - A blog looking at developing software for real-time and embedded systems.
- Sutter's Mill - Herb Sutter on software development.
- The View from Aristeia - Scott Meyers' Professional Activities and Interests.
- Visual C++ Team Blog
- Why is a raven like a writing desk?
-
Websites
- C++ Best Practices - Collaborative Collection of C++ Best Practices.
- C++ Patterns - A repository of modern C++ patterns.
- C++ reference - C++ reference.
- C++ By Example - Learn C++ by Example!
-
-
Libraries
-
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.
- 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.
-
Testing
- Boost.Test - Boost testing framework.
- doctest - The fastest feature-rich C++11/14/17/20 single-header testing framework for unit tests and TDD.
- snitch - Lightweight C++20 testing framework.
-
Threading
- Cpp-Taskflow - Modern C++ Parallel Task Programming Library
- Threading Building Blocks - Threading Building Blocks (TBB) is a C++ template library developed by Intel for parallel programming on multi-core processors. Using TBB, a computation is broken down into tasks that can run in parallel. The library manages and schedules threads to execute these tasks.
-
Parsing & Serialization
- simdjson - Accelerate the parsing of JSON per se using commonly available SIMD instructions
- Boost.JSON - A JSON library with robust support for custom allocators.
-
String formatting & templating
- {fmt} - Small, safe and fast formatting library.
-
Scripting
- ChaiScript - An easy to use embedded scripting language for C++.
-
Web / HTTP
- cpr - C++ Requests: Curl for People, a spiritual port of Python Requests.
- Crow - A Fast and Easy to use microframework for creating webservers (inspired by Python Flask).
- dmbcs-micro-server - C++20-based JSON, HTML, text and PNGs over HTTP; simple way to embed a server into your application to provide a web-based UI.
- Drogon - A C++14/17 based, high-performance HTTP application framework
- pistache - An elegant C++ REST framework.
-
BioC++
- SeqAn - The modern C++ library for sequence analysis (C++17, C++20).
-
Misc
- CAF - An Open Source Implementation of the Actor Model in C++.
- Cinder - Cinder is a free and open source library for professional-quality creative coding in C++.
- openFrameworks - an open source C++ toolkit for creative coding.
-
-
Tools
-
Misc
- clang-format - A tool to format C++ code.
- clangd - understands your C++ code and adds smart features to your editor: code completion, compile errors, go-to-definition and more.
- Compiler Explorer - Interactively explore the assembly output of your C++ code.
- cquery - C/C++ language server supporting multi-million line code base, powered by libclang. Emacs, Vim, VSCode, and others with language server protocol support. Cross references, completion, diagnostics, semantic highlighting and more (No more commits since Nov 27, 2018)
-
[Dynamic analysis](https://en.wikipedia.org/wiki/Dynamic_program_analysis)
- Valgrind - is an instrumentation framework for building dynamic analysis tools. There are Valgrind tools that can automatically detect many memory management and threading bugs, and profile your programs in detail. You can also use Valgrind to build new tools.
-
[Static analysis](https://en.wikipedia.org/wiki/Static_program_analysis)
- cppcheck - is a static analysis tool for C/C++ code. It provides unique code analysis to detect bugs and focuses on detecting undefined behaviour and dangerous coding constructs.
- clang-analyzer - is a source code analysis tool that finds bugs in C, C++, and Objective-C programs. It implements path-sensitive, inter-procedural analysis based on symbolic execution technique.
- clang-tidy - is a clang-based C++ “linter” tool. Its purpose is to provide an extensible framework for diagnosing and fixing typical programming errors, like style violations, interface misuse, or bugs that can be deduced via static analysis. clang-tidy is modular and provides a convenient interface for writing new checks.
-
[Fuzzing](https://en.wikipedia.org/wiki/Fuzzing)
- American fuzzy lop - American fuzzy lop is a security-oriented fuzzer.
- hongfuzz - A security oriented, feedback-driven, evolutionary, easy-to-use fuzzer with interesting analysis options.
- libFuzzer - A library for coverage-guided fuzz testing.
-
[Build system](https://en.wikipedia.org/wiki/Build_automation)
- Bazel - is a fast, scalable, multi-language and extensible build system.
- build2 - is a cross-platform build toolchain for developing and packaging C and C++ code.
- CMake - Cross-platform family of tools designed to build, test and package software.
- Meson - is an open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible.
- XMake - is a cross-platform build utility based on Lua.
-
[Package management](https://en.wikipedia.org/wiki/Package_manager)
-
-
About
-
[Package management](https://en.wikipedia.org/wiki/Package_manager)
-
Programming Languages
Categories
Sub Categories
Talks
21
Blogs
16
[Package management](https://en.wikipedia.org/wiki/Package_manager)
7
Misc
7
[Build system](https://en.wikipedia.org/wiki/Build_automation)
5
Web / HTTP
5
Websites
4
[Fuzzing](https://en.wikipedia.org/wiki/Fuzzing)
3
Kitchensink / Framework
3
Testing
3
[Static analysis](https://en.wikipedia.org/wiki/Static_program_analysis)
3
Threading
2
Parsing & Serialization
2
[Dynamic analysis](https://en.wikipedia.org/wiki/Dynamic_program_analysis)
1
Scripting
1
String formatting & templating
1
BioC++
1