- Bartek’s coding blog: C++ Ecosystem: Compilers, IDEs, Tools, Testing and More Oct 2019.
- 42 silly ways to say “Hello” in modern C++ (Sep 2018) - Speaker Deck
- Modern C++ and Lisp Programming Style | Chris Kohlhepp’s Blog ; Mar 2017.
- Optimizing software in C++ An optimization guide for Windows, Linux and Mac platforms by Agner Fog. Technical University of Denmark.
- A C++ Reading List.
- The archive of Interesting code implementations of algorithms and data structures in C++.
- Quantitative finance C++ reading list.
A good talk by Sean Parent
- no raw loops; use STL algorithms, if there isn’t one, write a general one.
- use a range library (Boost or ASL)
- use lambdas for predicates, comparisons, and projections, but keep them short
- Clasp: Common Lisp using LLVM and C++ for Molecular Metaprogramming - YouTube by Prof. Christian Schafmeister of Temple University.
CPP Projects to study
- kudu by cloudera. uses modern C++, is a network program, is a multi-langauge project (Java, C++ and Python); study for how the code is setup.
- ACCU :: Journal Articles
- C++ and Thoughts On Java, Go, and Rust
- Practical Guide to Bare Metal C++ - GitBook
- A list of modern C++ features | Hacker News
- Modern C for C++ Peeps; Sep 2019.
- The Case for C++ - ITNEXT; October 2019.
- The C11 and C++11 Concurrency Model (PDF) – PhD thesis by Mark Batty, 2014, University of Cambridge.
- An Introduction to Lock-Free Programming by Jeff Preshing; 2012. Also by him cpp11-on-multicore – “Various synchronization primitives for multithreaded applications in C++11. Used in the blog post, Semaphores are Surprisingly Versatile. “
In 2011, the C and C++ languages introduced relaxed-memory concurrency to the language specification. This was the culmination of a six-year process on which I had a significant impact. This thesis details my work in mathematically formalising, refining and validating the 2011 C and C++ concurrency design. It provides a mechanised formal model of C and C++ concurrency, refinements to the design that removed major errors from the specification before ratification, a proof in HOL4 (for a restricted set of programs) that the model supports a simpler interface for regular programmers, and, in collaboration with others, an online tool for testing intuitions about the model, proofs that the language is efficiently implementable above the relaxed x86 and Power architectures, a concurrent reasoning principle for proving specifications of libraries correct, and an in-depth analysis of problems that remain in the design.
Interop with Python
- wjakob/pybind11 – Seamless operability between C++11 and Python
Tools / IDE
- Add one line to your C/C++ source to make it executable.
- YAVIDE - Modern C++ integrated development environment
- Compiler Explorer referenced CppCon 2016: Jason Turner “Rich Code for Tiny Computers: A Simple Commodor 64 Game in C++17” - YouTube
- cpp-compilation/README.md at master · green7ea/cpp-compilation
- hunter - Cross-platform package manager for C++ (based on CMake ExternalProject). Linux, Mac, Windows, iOS, Android, Raspberry Pi.
- build2 | C++ Build Toolchain along with cppget.org for downloading pacakges.
- biicode – C++ dependency manager. CLion supports biicode.(Cmake)