Skip to content

C++ recommendations

Since Ikarus is written in C++, we summarize our recommendations to dig deeper into C++ coding on this page.

Best practices

  1. C++ Core Guidelines
  2. Jason Turner's collection of best practices
  3. More C++ idioms

Videos

Here we collect some useful videos on general coding or coding with C++:

  1. Clean Code - Uncle Bob / Lesson 1 - How to write code cleanly, see also 1
  2. CppCon 2014: Herb Sutter "Back to the Basics! Essentials of Modern C++ Style"
  3. CppCon 2018: Jonathan Boccara “105 STL Algorithms in Less Than an Hour” - "Almost" all algorithms in the STL
  4. Back to Basics: Object-Oriented Programming - Jon Kalb - CppCon 2019 - How to do modern "Object-Oriented Programming" (if you really have to)
  5. CppCon 2021 - Back To Basics
  6. CppCon 2019 - Back to Basics

Books

  1. [Meyers S. 1995]2
  2. [Gamma E. et al. 1995]3
  3. [Meyers S. 2005]4
  4. [Reddy M. 2011]5
  5. [Iglberger K. 2022]6

Further references

  1. Cppcon Videos - These videos are released after every C++ conference. For beginners, the "Back to basics" track is recommended.
  2. Godblot - Online compiler with assembler output. It's useful to quickly determine whether something will be fast or slow. Furthermore, libraries like Eigen can be added. Also, any other header files found on the internet can be included with the link.
  3. Blog by Arthur O'Dwyer

  1. Robert C Martin. Clean Code. Pearson Education, 2008. 

  2. Scott Meyers. More Effective C++: 35 New Ways to Improve Your Programs and Designs, PDF Version. Pearson Education, 1995. 

  3. Erich Gamma, Richard Helm, Ralph E. Johnson, and John Vlissides. Design patterns: elements of reusable object-oriented software. Pearson Deutschland GmbH, 1995. 

  4. Scott Meyers. Effective C++: 55 specific ways to improve your programs and designs. Pearson Education, 2005. 

  5. Martin Reddy. API Design for C++. Elsevier, 2011. 

  6. Klaus Iglberger. C++ Software Design: Design Principles and Patterns for High-Quality Software. O'Reilly, 2022.