The host, Jason Turner, welcomes viewers to the C++ weekly episode. He is available for code reviews and on-site training for organizations. In this episode, he covers the important parts of C++20.
He discusses designated initializers, a feature in C++20 that allows specifying values for each element of an array or struct. He notes that he cannot leave a value out, initialize things out of order, or leave one off the end. He also mentions that he cannot tag a particular object to be initialized with designated initializers.
He then talks about the comparison operator in C++20, which is built into the standard library. He mentions that compiler support and tooling support for modules, a feature that makes it easier to modularize code, is still in flux.
He also discusses co-routines, which are not yet supported by the standard library and require a lot of boilerplate code. He mentions that co-routines are one of the main defining features of C++20.
He talks about Concepts, a feature that can be used to constrain the types of parameters that can be passed to functions. He mentions that Concepts can be used in many different ways, but does not go into detail in this episode.
He also mentions the format header, which is now part of C++20 and is similar to Python's string formatting. He discusses the Source location header, which provides compile-time information about the particular line of code being executed.
He briefly touches on calendar updates to Chrono, a feature in C++20 that allows for easy handling of dates, times, and time zones. He mentions that this is becoming more and more supported by standard libraries.
He also talks about the constexpr feature, which allows virtually anything to work at compile time with just a little bit of extra effort. He mentions the span feature, which allows easy decoupling of ranges to anything that works with a contiguous container.
Finally, he mentions threading updates in C++20, specifically jthread, and the counting semaphore, binary sum of four latches, and barriers. He encourages viewers to check out his episode on jthread and these features.
He concludes by thanking viewers for watching the episode and encourages them to subscribe to the channel.
1. The host of the C++ weekly is Jason Turner, who is available for code reviews and on-site training.
2. Jason Turner encourages viewers to contact him for on-site training for their organization, stating it as a great opportunity for team building.
3. The episode covers important parts of C++20, including designated initializers, comparison operators, modules, co-routines, and concepts.
4. Designated initializers in C++20 allow specifying the values for each of the elements. However, it's not possible to leave a value out, initialize things out of order, or leave one off the end.
5. As of C++20, comparison operators can be implemented using the compare header.
6. Modules are important in C++20, but compiler support and tooling support are still in flux.
7. Co-routines are a defining feature of C++20, but there's no standard library support.
8. Concepts in C++20 can be used to constrain the types of parameters that can be passed to functions.
9. C++20 introduces the format header, which is similar to Python's string formatting.
10. The Source location header in C++20 provides compile-time information about the particular line of code being executed.
11. C++20 introduces updates to Chrono, making it easier to work with calendars, dates, times, and time zones.
12. The standard libraries in C++20 now support the format header with the standard formatter.
13. C++20 introduces the constexpr all, which allows virtually anything to work at compile time with just a little bit of extra effort.
14. The span in C++20 allows decoupling the use of ranges to anything that works with a contiguous container such as Vector, string view, string, or array.
15. There have been threading updates in C++20, including jthread, counting semaphore, binary sum of four latches, and barriers.