Useful Modern C++ resources to
consider
(Updated
2024-April-10th)
Books/Websites:
- (C++20) Rainer Grimm, C++20, Leanpub, 2021.
- (C++20) Jason Turner, C++ Best Practices, Leanpub,
2021.
- (C++20) Bjarne Stroustrup, A Tour of C++, 3rd Edition,
Addison-Wesley, 2022.
- Bjarne
Stroustrup
- cplusplus.com
- Herb Sutter
- CppCast
podcast
- isocpp.org
- quick-bench.com
- SEI CERT C++ Coding Standard
- Tony Albrecht, "Pitfalls of Object-Oriented Programming", Presentation,
Dec 2009.
- Russell Hadley, "Improved Linker Fundamentals in Visual Studio 2019", MS
C++ Team Blog Entry, July 2019.
- Corentin Jabot, "The Problem with C", Blog Entry, Aug 2020.
- Corentin Jabot, "The Day the (C++) Standard Library Died", Blog Entry,
Feb 2020.
- Noel Llopis, "Data-Oriented Design", Article, Dec 2009.
- John Regehr, "A Guide to Undefined Behavior in C and C++", Blog
Entry, July 2010.
- Lane Roathe, "OOP != Classes, but may == DOD", Blog Entry, March
2010.
- Chris Wellons, "The Value of Undefined Behavior", Blog Entry, July
2018.
Videos:
- Mike Acton, "Data-Oriented Design and C++", CppCon talk, 2014. (SLIDES) (BACKUP)
- Tony Albrecht, "Pitfalls of Object-Oriented Programming, Revisited",
Presentation, 2017.
- Andrei Alexandrescu, "How AI Tools Impact Your Life as a Systems Programmer", Code Europe closing keynote,
2023.
- Andrei Alexandrescu, "Robots Are After Your Job (or At Least the Boring Parts of It)", CppCon closing keynote,
2023.
- Matthew Butler, "Secure Coding Best Practices", C++Now talk, 2018.
- Marshall Clow, "Making Your Library More Reliable with Fuzzing", C++Now
talk, 2018.
- Bruce Dawson, "Getting Started Debugging on Linux [using Qt Creator]",
Steam Dev Days talk, 2014.
- Louis Dionne, "Compile-time Programming & Reflection in C++20 and
beyond", CppCon talk, 2018.
- Hana Dusíková, "Compile-time Regular Expressions", CppCon talk,
2018.
- Matt Godbolt, "What Has My Compiler Done for Me Lately?", CppCon talk,
2017.
- Matt Godbolt, "The Bits between the Bits: How We Get to main()",
CppCon talk, 2018.
- Kate Gregory, "Stop Teaching C (when teaching C++)", CppCon talk,
2015.
- Kate Gregory, "10 Core Guidelines You Need to Start Using Now", CppCon
talk, 2017.
- Kate Gregory, "What Do We Mean When We Say Nothing At All?", CppCon
talk, 2018.
- Nicolai Josuttis, "The Nightmare of Initialization in C++", CppCon talk,
2018.
- Greg Law, "Debugging Linux C++", CppCon talk, 2018.
- Neil MacIntosh, "Static Analysis and C++: More than Lint", CppCon talk,
2015.
- Neil MacIntosh, "The Guideline Support Library: One Year Later", CppCon
talk, 2016.
- Scott Meyers, "The Last Thing D Needs", DConf talk, 2014.
- Scott Meyers, "Type Deduction and Why You Care", CppCon talk,
2014.
- Phil Nash, "Modern C++ Testing with Catch2", CppCon talk, 2018.
- Sean Parent, "C++ Seasoning", GoingNative talk, 2013.
- Sean Parent, "Better Code: Data Structures", CppCon talk, 2015.
- Sean Parent, "Better Code: Concurrency", NDC London talk, 2017.
- Sean Parent, "Better Code: Runtime Polymorphism", NDC London talk,
2017.
- Sean Parent, "Better Code: Human Interfaces", CppCon talk, 2018.
- Sean Parent, "Generic Programming", Pacific++ talk, 2018.
- Fedor Pikus, "C++ Atomics: From Basic to Advanced", CppCon talk,
2017.
- Robert Ramey, "Safe Numerics", CppCon talk, 2018.
- John Regehr, "Undefined Behavior in 2017 (Part 1/2)",
CppCon talk, 2017.
- John Regehr, "Undefined Behavior in 2017 (Part 2/2)",
CppCon talk, 2017.
- Ben Saks, "Back to Basics: Exception Handling & Safety",
CppCon talk, 2019.
- Dan Saks, "Understanding Lvalues and Rvalues", Core C++ talk,
2019.
- Dan Saks, "Back to Basics: Const as a Promise", CppCon talk,
2019.
- Dan Saks, "Back to Basics: Function and Class Templates", CppCon
talk, 2019.
- Bjarne Stroustrup, "OOP without Inheritance", ECOOP talk, 2015.
- Bjarne Stroustrup, "Writing Good C++14", CppCon talk, 2015.
- Bjarne Stroustrup, "The Evolution of C++: Past, Present and Future", CppCon
talk, 2016.
- Bjarne Stroustrup, "Learning and Teaching Modern C++", CppCon talk,
2017.
- Bjarne Stroustrup, "Concepts: The Future of Generic Programming", CppCon
talk, 2018.
- Bjarne Stroustrup, "C++20: C++ at 40", CppCon talk, 2019.
- Bjarne Stroustrup, "C++ in Constrained Environments", CppCon talk, 2022.
- Bjarne Stroustrup, "Delivering Safe C++", CppCon talk, 2023.
- Herb Sutter, "Back to Basics: Essentials of Modern C++14 Style",
CppCon talk, 2014. (PDF SLIDES)
- Herb Sutter, "Writing Good C++14...By Default", CppCon talk, 2015.
(PDF SLIDES)
- Herb Sutter, "Leak-Freedom in C++14...By Default", CppCon talk,
2016.
- Herb Sutter, "Meta: Thoughts on Generative C++", CppCon talk,
2017.
- Herb Sutter, "Thoughts on a More Powerful and Simpler C++", CppCon
talk, 2018.
- Herb Sutter, "De-fragmenting C++: Making Exceptions and RTTI More
Affordable and Usable", CppCon talk, 2019.
- Herb Sutter, "Modern C++: What You Need to Know", Build talk,
2013.
- Herb Sutter, "How to Adopt Modern C++17 into Your C++ Code", Build
talk, 2018.
- Herb Sutter, "Quantifying Accidental
Complexity", C++ Meeting Prague talk, 2020.
- Herb Sutter, "Can C++ Be 10x Simpler & Safer?", CppCon talk, 2022.
- Herb Sutter, "Toward a Typescript for C++", CppCon plenary, 2023.
- Jeff Trull, "Liberating the Debugging Experience with the GDB Python
API", CppCon talk, 2018.
- Jason Turner, "Practical constexpr", Meeting C++ talk, 2017.
- Jason Turner, "Rethinking Exceptions", Pacific++ talk, 2017.
- Jason Turner, "Practical C++17", CppCon talk, 2017.
- Jason Turner, "Surprises in Object Lifetime", CppCon talk, 2018.
- Jason Turner, "Applied Best Practices", CppCon talk, 2018.
- Jason Turner, "Break ABI to Save C++", YouTube video, May 2021.
- Geoffrey Viola, "Detecting Programs that Rely on Undefined Behavior",
CppCon talk, 2019.
- Nathanael Weiss, "Wraithbinder Dev Ep005 - Code Bloat and the Pimpl Idiom", Highlight Video, Nov 2018.
- Nathanael Weiss, "Wraithbinder Dev Ep002 - C vs C++ Compilation Speed", Highlight Video, Nov 2018.
- Titus Winters, "The Philosophy of Google's C++ Code", CppCon talk,
2014.
- Titus Winters, "Lessons in Sustainability", CppCon talk, 2015.
- Titus Winters, Hyrum Wright, "All Your
Tests are Terrible", CppCon talk, 2015.
- Hyrum Wright, "Large-Scale Change at Google: Lessons Learned", CppCon
talk, 2018.
Best viewed at
1280x720 (720p) screen resolution or higher.