The control flow graph is an arbitrary graph with cycles, but if you create it from a source language with structured control flow, you can assign each basic block a lexical parent based on the lexical nesting in the source code. The result is a tree where parent blocks can contain variables the child blocks can access (assuming normal lookup rules) which can help with e.g. borrow checking (only borrows in the parent scope need to be considered).
I was talking with a friend who's a science advisor to a German MP. He was complaining about issues with old Soviet contracts that are still in effect with Russia that prevents them from doing stuff under international law.
I told him: "Oh, in the C++ committee we have a similar problem with old IBM computers".
If you're in Berlin, I'll be giving my talk "A deep dive into dispatching techniques" as part of the Humboldt university's Programming in C lecture on Thursday 15:00!
@foonathan what does dispatching techniques mean here? I also keep seeing dispatchable and non dispatchable handles everywhere but I keep assuming it is to help compiler differentiate pointer to data vs pointer to function, is my assumption correct?
@foonathan Is there any reason why a C++ match expression could not be matched against types (maybe with a match_type keyword)? It would enable custom behaviour in library templates where the type is not always known, for example when using Eigen templates.
Don't end your talk with "are there any questions?" because then you get an awkward silence, then people realize it's over and start applauding, and then questions.
End it with "thank you for listening", wait for applause, then ask for questions.
@foonathan ideally the last slide shows some summary of your talk, visual if applicable. You can add a "thank you" there if you really want but it's important that the "freeze frame" slide at the end makes it easy for people to remember your whole talk at a glance, not be a blank canvas.
> This conversion initializes a temporary object of type T from the prvalue by evaluating the prvalue with the temporary object as its result object, and produces an xvalue denoting the temporary object.
The C++ standard is like me when I need to hit the word count requirements on an essay.
I missed a train by 10 minutes, otherwise I could have made a new record: touchdown in FRA at 05:11, home in Aachen by 7:30.
Unfortunately, I now have to take the slower train 15 minutes later which translates to an arrival of 8:30 (provided the regional train isn't delayed, which is unlikely).
Apparently I'm the only person that wants to fly today from Haneda. Took me 15 minutes to go from the taxi to the lounge including baggage drop-off problems because it couldn't scan my passport.
@foonathan Everything is fine as long as you don't use customisation point objects. Because those aren't actually used for customisation points most of the time 💡