C++ recommendations¶
Since Ikarus is written in C++, we summarize our recommendations to dig deeper into C++ coding on this page.
Best practices¶
- (https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)
- (https://lefticus.gitbooks.io/cpp-best-practices)
- (https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms)
Videos¶
Here we collect some useful videos on general coding or coding with C++:
- (https://www.youtube.com/watch?v=7EmboKQH8lM) - How to write code cleanly, see also 1
- (https://youtu.be/xnqTKD8uD64)
- (https://www.youtube.com/watch?v=2olsGf6JIkU) - "Almost" all algorithms in the STL
- (https://www.youtube.com/watch?v=32tDTD9UJCE&list=PLHTh1InhhwT4CTnVjJqnAKeMfGzOWjsRa) How to do modern "Object-Oriented Programming" (if you really have to)
- (https://www.youtube.com/watch?v=Bt3zcJZIalk&list=PLHTh1InhhwT4TJaHBVWzvBOYhp27UO7mI)
- (https://www.youtube.com/watch?v=32tDTD9UJCE&list=PLHTh1InhhwT4CTnVjJqnAKeMfGzOWjsRa)
Books¶
Further references¶
- (https://www.learncpp.com/) - Lots of tutorials from beginners up to more advanced concepts
- (https://www.youtube.com/user/CppCon) - These videos are released after every C++ conference. For beginners, the "Back to basics" track is recommended.
- (https://godbolt.org/) - 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.
- Blog by (https://quuxplusone.github.io/blog/2022/01/23/dont-const-all-the-things/)
-
Robert C Martin. Clean Code. Pearson Education, 2008. ↩
-
Scott Meyers. More Effective C++: 35 New Ways to Improve Your Programs and Designs, PDF Version. Pearson Education, 1995. ↩
-
Erich Gamma, Richard Helm, Ralph E. Johnson, and John Vlissides. Design patterns: elements of reusable object-oriented software. Pearson Deutschland GmbH, 1995. ↩
-
Scott Meyers. Effective C++: 55 specific ways to improve your programs and designs. Pearson Education, 2005. ↩
-
Martin Reddy. API Design for C++. Elsevier, 2011. ↩
-
Klaus Iglberger. C++ Software Design: Design Principles and Patterns for High-Quality Software. O'Reilly, 2022. ↩