Meeting C++ online - Victor Ciura - C++ UNIverse - teaching C++
Victor Ciura gave a talk in August at Meeting C++ online
Meeting C++ online - Victor Ciura - C++ UNIverse - teaching C++
by Victor Ciura
March 19-21, Madrid, Spain
April 1-4, Bristol, UK
June 16-21, Sofia, Bulgaria
By Meeting C++ | Sep 11, 2021 04:50 AM | Tags: meetingcpp community
Victor Ciura gave a talk in August at Meeting C++ online
Meeting C++ online - Victor Ciura - C++ UNIverse - teaching C++
by Victor Ciura
By Adrien Hamelin | Sep 10, 2021 02:33 PM | Tags: community
Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from our most recent in-person conference in 2019 and our online conference in 2020. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2021 to attend in person, online, or both!
A C++ Approach to Physical Units
by Mateusz Pusz
Summary of the talk:
This talk presents a new C++20 library for Dimensional Analysis and Physical Units handling. The essential requirements of the library are user-friendliness, compile-time safety, no runtime overhead, and easy extensibility. The syntax of the library is built around a few easy to learn concepts and strictly checked at compile time, which makes it easy to learn and very forgiving for the novice.
The talk presents motivating examples of why we need such a library, compares the library with other similar products on the market, describes the basic usage and interface, and highlights the benefits of the design choices made.
The talk is also a great showcase of practical usage of new C++20 features that make the library interface easier to use, maintain, and extend. Concepts, contracts, class types provided as non-type template parameters, and other C++20 features make a huge difference in how we can design Modern C++ code.
By Legalize Adulthood | Sep 9, 2021 11:18 AM | Tags: None
Utah C++ Programmers has released a new video.
Audio Programming with BASS
by Richard Thomson
From the video description:
This month, Richard Thomson will give us an introduction to audio programming with the BASS library. Specifically, we'll look at this library with an eye towards playing back MOD music and triggering events during playback in response to interesting things happening during the score.
BASS is an audio library for use in software on several platforms. Its purpose is to provide developers with powerful and efficient sample, stream (MP3, MP2, MP1, OGG, WAV, AIFF, custom generated, and more via OS codecs and add-ons), MOD music (XM, IT, S3M, MOD, MTM, UMX), MO3 music (MP3/OGG compressed MODs), and recording functions. All in a compact DLL that won't bloat your distribution.
By Adrien Hamelin | Sep 6, 2021 01:45 PM | Tags: community
Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from our most recent in-person conference in 2019 and our online conference in 2020. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2021 to attend in person, online, or both!
Building an Intuition for Composition
by Sy Brand
Summary of the talk:
If you're fed up of reading articles about "monads" and "endofunctors" that don't give you an understanding of how they can actually help your C++ programming, this talk is for you.
Function and data composition are becoming increasingly important in C++ due to features like ranges, continuable futures, and new error handling techniques. Using real-world examples and C++ programming idioms, I'll help you build an intuition for the mathematical concepts which underpin these so that you can make the most of them in your code and build your own abstractions built on the same foundations.
By Adrien Hamelin | Sep 3, 2021 12:29 PM | Tags: community
Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from our most recent in-person conference in 2019 and our online conference in 2020. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2021 to attend in person, online, or both!
Back to Basics: Virtual Dispatch and its Alternatives
by Inbal Levi
Summary of the talk:
Code efficiency is one of the strongest features of modern C++, therefore broadly used in industries with a need for high performance, such as Real-Time or Embedded Systems.
In this talk, we will go through the search for high run-time efficiency using the dispatch mechanism.
We will start by providing tools for understanding and estimating run-time performance cost.
Next, we'll analyze a test case, and dive into some of the most fundamental components of the language such as inheritance, and templates.
We will continue by introducing implementations which produce high run-time efficiency code such as CRTP, std::variant and visitor, and use them to maximize performance.
Finally, we will do benchmarking and draw conclusions, and try to answer the question -
How can we use C++ ideally for achieving high-performance efficiency?
By Adrien Hamelin | Aug 30, 2021 01:22 PM | Tags: community
Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from our most recent in-person conference in 2019 and our online conference in 2020. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2021 to attend in person, online, or both!
Calling Functions: A Tutorial
by Klaus Iglberger
Summary of the talk:
How is a function call resolved? How does the compiler find the right function and how does the compiler choose from a set of available functions? This talk will give an overview of the individual steps taken during the resolution of a function call. It will primarily focus on the different kinds of name lookup, argument deduction, and on overload resolution. Attendees will gain insight into the mechanics of (un-)qualified lookup, argument dependent lookup, two-phase lookup, name hiding, SFINAE, (viable) candiate functions, and ambiguous function calls. They will leave the talk with a much better understanding of the (sometimes surprising) details of function calls.
By Adrien Hamelin | Aug 27, 2021 12:04 PM | Tags: community
Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from our most recent in-person conference in 2019 and our online conference in 2020. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2021 to attend in person, online, or both!
EDSL Infinity Wars: Mainstreaming Symbolic Computation
by Joel Falcou, Vincent Reverdy
Summary of the talk:
Scientists and Developers want the same thing: a simple code that does exactly what it should. For the former, it implies adhering to their knowledge base and domain idioms. For the latter, it means it compiles in a reasonable time frame and without bugs. for both, it better computes fast in the end. One way developers, especially in C++, provides scientists with usable libraries is to design them as Embedded Domain Specific Languages. Alas, in all honesty, if someone asked the Scientists, they will probably state that LaTex is *the* perfect DSLs they practice every day.
This is an old story and even if we only focus on matrix-based libraries, the current landscape of high-performance computing library -- Blaze, Blitz++, EIGEN, Armadillo, etc... -- is proof that those techniques have a decent public following. This is the point where the icky things start: stories of meta-programming, so-called expression templates and their uphill battle against new C++ features: interaction with auto, rvalue-references, move semantics and so on. The authors have spent quite a bit of their coding life trying to play with or around those techniques and this talk is about what they learned during this journey.
This talk will focus on what kind of mistakes, oversights and traps the old kind of scientific EDSLs fell into. We will investigate why the new C++ features didn't help them but pushed them further into a state of ever-growing complexity. We will present our vision of how a modern-C++ friendly EDSL for science can be built. By starting from scratch, this talk will cover the actual requirements of such a library including move-aware expression templates, symbolic formula building, type/value maps, named parameters and static visitors. As a conclusion, we will scheme over various immediate benefits of such an EDSL and new applications that old style libraries could not handle like symbolic simplification, automatic analytical derivation and more.
By Meeting C++ | Aug 26, 2021 05:07 AM | Tags: meetingcpp jobs events community
The next edition of the C++ online job fair organized by Meeting C++ will be on 21s/&22nd September!
The Meeting C++ online job fair returns!
by Jens Weller
From the article:
The first two online events in remo have been a great success. They've been very well received by the C++ community and this event will now be a part of regularly scheduled events for Meeting C++ online. As remo is not available anymore, the event will be hosted in the new online event platform for Meeting C++ 2021. The event will be again on two days: 21st/22nd September, with the first day being in the afternoon and the second day in the evening...
By Adrien Hamelin | Aug 25, 2021 01:42 PM | Tags: community
Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from our most recent in-person conference in 2019 and our online conference in 2020. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2021 to attend in person, online, or both!
A Multi-threaded, Transaction-Based Locking Strategy for Containers
by Bob Steagall
Summary of the talk:
With the concurrency tools available in the modern C++ standard library, it is easier than ever to create multi-threaded programs. When we write such applications, there are sometimes cases in which a container simply must be shared among multiple threads. Of course, sharing is trivial if the only operations on the container are reads. In the case where reads greatly outnumber writes, acceptable performance is often attainable with a reader/writer mutex type, like std::shared_mutex. But suppose that the number of writes is similar to, or even greater than, the number of reads -- how does one then perform simultaneous reads and writes on a single container?
One common usage pattern is that, for a given operation, sets of related records are read and updated together. In order to prevent data races and inconsistent views of the data, such sets must be locked together as a unit before any of them can actually be read or updated. Further, it is very easy to accidentally create deadlocks by choosing a seemingly correct locking order. In order to avoid these problems, we would like a locking algorithm that provides three important properties: atomicity, consistency, and isolation.
This talk will describe an algorithm, implemented in C++, that performs such locking based on the concept of strict timestamp ordering. Using only facilities from the C++17 standard library, it employs a straightforward approach to multi-threaded, transactional record locking that requires minimal spatial overhead and yet fulfils the requirements of atomicity, consistency, and isolation. We'll discuss the pros, cons, and limitations of the algorithm, and provide some performance measurements.
By Adrien Hamelin | Aug 23, 2021 02:16 PM | Tags: community
Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from our most recent in-person conference in 2019 and our online conference in 2020. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2021 to attend in person, online, or both!
Time Travel: Applying Gradual Typing to Time Types with Clang's LibTooling
by Hyrum Wright
Summary of the talk:
Libraries for C++ are constantly evolving, with new APIs being added, old ones being deprecated and functionality continually changing. In past CppCon talks, I've described in abstract how Google manages this change by applying large-scale changes across our C++ codebase using clang's libTooling infrastructure.
In this talk, we'll put this previous work in practice by demonstrating how we use clang-tidy and clang's libTooling library to improve type safety of time types across Google's 250M lines of C++. Using tools currently open sourced as part of clang-tidy, we'll show how the underlying model of time types allow us to migrate from a collection of integers and floating point types to the much more strongly typed `absl::Time` and `absl::Duration` types representing time instants and intervals. Along the way, we'll discover how this process finds existing bugs and prevents new ones from creeping in.
This "gradual typing" technique is not limited to just Time types, and we'll explore how this can be used to improve pointer ownership deduction and other places where more constraining types eliminate classes of bugs.