6 impossible things - Kevlin Henney - Opening Keynote Meeting C++ 2023
Kevlin Henney gave the opening keynote at Meeting C++ 2023
6 impossible things - Kevlin Henney - Opening Keynote Meeting C++ 2023
by Kevlin Henney
Video:
June 8-13, Brno, Czechia
June 17-20, Folkestone, UK
September 12-18, Aurora, CO, USA
November 16-21, Búzios, Rio De Janeiro, Brazil
November 26-28, Berlin, Germany
By Meeting C++ | Dec 17, 2023 02:24 PM | Tags: meetingcpp intermediate advanced
Kevlin Henney gave the opening keynote at Meeting C++ 2023
6 impossible things - Kevlin Henney - Opening Keynote Meeting C++ 2023
by Kevlin Henney
Video:
By Marco Arena | Mar 8, 2023 04:36 AM | Tags: thatsarotate ranges experimental c++20 advanced
Revisiting a classical programming puzzle in next generation C++:
Merging intervals in next-gen C++
by Marco Arena
From the article:
A few weeks ago, I set this problem at Coding Gym: given an array of intervals where intervals[i] = [starti, endi], merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input...
By Meeting C++ | Dec 10, 2022 11:38 AM | Tags: meetingcpp intermediate community c++20 basics advanced
The opening keynote of Meeting C++ 2022 is now online!
Belle Views on C++ Ranges, their Details and the Devil - Nico Josuttis - Keynote Meeting C++ 2022
by Nicolai Josuttis
Watch it now
By Meeting C++ | Aug 18, 2022 07:11 AM | Tags: performance intermediate debugging debug basics advanced
A post on conditional breakpoints, including two surveys about their usage.
About conditional brealkpoits
by Jens Weller
From the article:
A few weeks ago someone asked me for advice on finding a specific bug in a larger C++ code base...
I don't remember much of the details, but one of the challenges was that at least some of the code based used public members, and in order to find the bug a change in these members is what they wanted to understand. Adding out put statements into a setter function wasn't possible, as the code did not have those. My suggestion was using a conditional breakpoint. And it also made me curious, if and how they're used with in our community.
By Meeting C++ | Aug 11, 2022 02:19 AM | Tags: meetingcpp intermediate conference community c++20 c++17 basics advanced
Since yesterday its possible to have a first look at the program of Meeting C++ 2022
A first view on the talks and speakers of Meeting C++ 2022
by Jens Weller
From the article:
I'm excited to release this update for Meeting C++ 2022: the talks and speakers for this years conference!
As you can see in the talk listing, this is still an ongoing process, getting the speaker pictures from the new speakers for this year will still take a while. Creating the schedule will also take a few weeks, as of now Tracks A and B are planned on site, with Tracks C and D being part of the online part.
By Adrien Hamelin | Jul 22, 2022 01:21 PM | Tags: advanced
Complex world.
Pass-by-value vs Pass-by-reference
by James Mitchell
From the article:
Let’s dig into the age old question, should you pass-by-value or pass-by-reference in C++? (or by pointer in C)
This blog post is mostly a re-post of a reddit comment that I made on r/cpp about pass-by-value and pass-by-reference, with some minor improvements, to make it easier to reference and save.
The answer isn’t as easy as it might seem, it depends on the Application Binary Interface (ABI) and your use-cases, there isn’t a one size fits all answer, this is even more the case for anything which is built to be cross platform.
First it’s probably good to break the problem down into two parts (focusing solely on performance, ignoring readability and maintainability which should often be more important)
- The language construct costs (copying, moving, etc)
- Compiler implications (aliasing, pointer provenance, etc)
- The ABI (the stack, registers, etc)...
By Adrien Hamelin | Jun 7, 2022 01:19 PM | Tags: advanced
Highly non trivial.
Assignment for optional<T>
by Barry Revzin
From the article:
Let’s talk about assignment for optional<T>. I realize this is a fraught topic, but I want to try to build up proper intuition about how assignment has to work, especially since the debate around this topic has been fairly underwhelming. This post will almost exclusively discuss copy assignment (i.e. the one that takes an optional<T> const&), since everything just follows from that...
By Adrien Hamelin | Mar 21, 2022 12:19 PM | Tags: advanced
The devil is in the details.
Zero-cost exceptions aren’t actually zero cost
by Raymond Chen
From the article:
There are two common models for exception handling in C++. One is by updating some program state whenever there is a change to the list of things that need to be done when an exception occurs, say, because a new exception handler is in scope or has exited scope, or to add or remove a destructor from the list of things to execute during unwinding. Another model is to use metadata to describe what to do if an exception occurs. There is no explicit management of the state changes at runtime; instead, the exception machinery infers the state by looking at the program counter and consulting the metadata...
By Adrien Hamelin | Feb 16, 2022 09:50 AM | Tags: advanced
How did you solve it?
On finding the average of two unsigned integers without overflow
by Raymond Chen
From the article:
Finding the average of two unsigned integers, rounding toward zero, sounds easy:
unsigned average(unsigned a, unsigned b) { return (a + b) / 2; }However, this gives the wrong answer in the face of integer overflow: For example, if unsigned integers are 32 bits wide, then it says that average(0x80000000U, 0x80000000U) is zero...
By Adrien Hamelin | Jan 31, 2022 02:24 PM | Tags: advanced
Do you know the conversions?
The Usual Arithmetic Confusions
by Shafik Yaghmour
From the article:
There are a lot of aspects of C++ that are not well understood and lead to all sorts of confusion. The usual arithmetic conversions and the integral promotions are two such aspects. Certain binary operators (arithmetic, relational and spaceship) require their operands to have a common type. The usual arithmetic conversions are the set of steps that gets operands to a common type. While the integral promotions brings integral types smaller than int and unsigned int to either int or unsigned int depending on which one can represent all the values of the source type. This is one of the areas in C++ that comes directly from C, so pretty much all of these examples applies to C as well as C++...