A list of C++ topics2023-10-30 16:07:09In Jason Turner’s C++ Weekly Ep 348, he listed out an extensive C++ topics. Understanding these topics makes equips you with expert level C++ knowledge. BUT DOES NOT make you in C++ (programming). The entire video is about building a lambda function, from simple to complex, and different versions.Here is list of topics:lambdas (C++11)struct (C++98)constexpr (C++11)operator overloading (C++98)call operator (C++98)const member functions (C++98)braced initialization (C++11)auto return type deduction (C++14)“compiler magic” at 3:33 he says “because inside our the call operator overload we cannot see the *this pointer of the lambda”function parameters (C++98)pass-by-value (C++98)attributes on parameters (C++11) e.g. [[maybe_unsed]]pass-by-reference (C++98)pass-by-value vs pass-by-reference (C++98)pre-increment vs post-incrementtrailing return types (C++11)class vs struct (C++98)private vs public (C++98)implicit conversions (C++98)function pointers (C++98)static member functions (C++98)using aliases (C++11)efficiency when chaining functions, 6:35 generic lambdas (C++14)templates (C++98)template argument type deduction (C++98)aias templates (C++11)template instantiations (C++98)noexcept (C++11)noexcept in the type system (C++17)variadic templates (C++11)variadic lambdas (C++14)fold expressions (C++17)function attributes (C++11)concepts (C++20) 8:47 to constrain the lambdasnon-type template parameters (C++98)integer sequences (C++11)template parameter pattern matching (C++98)explicit lambda templates (C++17)tuples (C++11)unpacking of tuples (C++11)variadic sizeof...() operator (C++11)direct-initialization of members (C++11)mutable keyword (C++98)non-const member functions (C++98)reference members (C++98)member copies (C++98)object layout (C++98)member padding (C++98)order of construction/destruction (C++98)generalized lambda capture (C++14)immediately invoked lambdas (C++11)return value optimization (C++98)guaranteed return value optimization (C++17)initializer_list (C++11)recursive lambda (C++23)deducing this (C++23)recursive functionstrivially copyable types (C++98)higher order functionsdangling referencesundefined behavior 16:10 overloaded lambdasinheritance (C++98)multiple inheritance (C++98)function hiding (C++98)variadic using declarations (C++17)scoping / lookup rules (C++98)class template argument deduction (C++17/C++20)deduction guides (C++17)algorithms (C++11)ranges (C++20)<functional> (C++11)virtual member functions (C++98)member function pointers (C++98)special member functions (C++98/11)member function call syntax (C++98)type erasure (C++98)dynamic vs automatic storage (C++98)Missingwriting your own concepts?type traits?operator <=>?protected?virtual inheritancecompilation modelODR violationspreprocessorproject structure and layoutthe breadth of the standard libraryvariable templatescoroutinesmodulesFrom the comments of an user @darkmagic543, there are additional topics:exceptions, catch ellipsestructured bindingforward declarationnamespacesrules of 5, default and nontrivial/virtual destructorsmemory, pointers and smart pointersiterators and writing your own iteratormultithreadingnumericexplicit/implicit conversionscastings, slicingvariant & visitorabstract class (pure virtual), delete, final // default as well?constevalpackages & libraries, cmakesigned/unsigned arithmetic, bitwise operations, bitsetThat is quite a list of topics.Jason has concluded at the end of the video, “and hopefully you can use this as a starting point for getting that expert levels C++ knowledge that you’ve been looking for”. This is what I am trying to achieve.I know some of these topics, but it is my goal to know them all. I will use this as a check list of the progression of my C++ learning journey.