Value Proposition: Allocator Aware Software - John Lakos - Meeting C++ 2019
A new talk from Meeting C++ 2019:
Value Proposition: Allocator Aware Software
By John Lakos
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 13, 2019 12:15 PM | Tags: performance meetingcpp lakos john lakos intermediate experimental c++20 c++17 c++14 advanced
A new talk from Meeting C++ 2019:
Value Proposition: Allocator Aware Software
By John Lakos
By Adrien Hamelin | Dec 11, 2019 12:32 PM | Tags: experimental advanced
A very detailed and interesting article, a must read!
Generators and the Sweet Syntactic Sugar of Coroutines
by Adi Shavit
From the article:
“Coroutines make it trivial to define your own ranges.”
— Eric Niebler, Lead author of the C++ Ranges proposal (edited for drama)Hmmm… is that so?
But wait, what are coroutines?From Boost.Coroutine2: A coroutine (coined by Melvin Conway in 1958!) is a function that can suspend execution to be resumed later. It allows suspending and resuming execution at certain locations and preserves the local state of execution and allows re-entering the subroutine more than once. In contrast to threads, which are pre-emptive, coroutine switches are cooperative: the programmer controls when a switch will happen. The kernel is not involved in the coroutine switches.
This sounds just like what we want!
By Meeting C++ | Dec 8, 2019 07:33 AM | Tags: walter e. brown security performance meetingcpp intermediate community code bugs basics advanced
Walter E. Browns Meeting C++ 2019 Closing Keynote:
Crazy Code and Crazy Coders - Walter E. Brown - Closing Keynote Meeting C++ 2019
by Walter E. Brown
By Meeting C++ | Dec 7, 2019 09:39 AM | Tags: meetingcpp machinelearning intermediate experimental community basics artificialintelligence ai advanced
The Center Keynote from Meeting C++ 2019 is online:
Can AI replace programmers? - Frances Buontempo - Meeting C++ 2019 Center Keynote
by Frances Buontempo
By Meeting C++ | Dec 6, 2019 10:42 AM | Tags: performance meetingcpp intermediate howard hinnant experimental efficiency community chrono c++20 c++17 c++14 c++11 basics advanced
The first keynote of this years Meeting C++ conference is online:
Opening Keynote Meeting C++ 2019 - Howard Hinnant - Design Rationale for the chrono Library
by Howard Hinnant
By Meeting C++ | Dec 5, 2019 10:06 AM | Tags: meetingcpp intermediate community c++20 c++17 c++11 basics advanced
The lightning talks from Meeting C++ 2019 are now online!
Meeting C++ Youtube Channel
by Jens Weller
From the article:
A few lightning talks I'd like to point to:
Finding hard to find bugs with Address Sanitizer - Marshall Clow
Consistently Inconsistent - Conor Hoekstra
By Adrien Hamelin | Nov 11, 2019 10:36 AM | Tags: advanced
Take a listen.
Bjarne Stroustrup: C++ | Artificial Intelligence (AI) Podcast
by Lex Fridman
Summary of the podcast:
Bjarne Stroustrup is the creator of C++, a programming language that after 40 years is still one of the most popular and powerful languages in the world. Its focus on fast, stable, robust code underlies many of the biggest systems in the world that we have come to rely on as a society. If you're watching this on YouTube, many of the critical back-end component of YouTube are written in C++. Same goes for Google, Facebook, Amazon, Twitter, most Microsoft applications, Adobe applications, most database systems, and most physical systems that operate in the real-world like cars, robots, rockets that launch us into space and one day will land us on Mars. This conversation is part of the Artificial Intelligence podcast.
By Adrien Hamelin | Oct 22, 2019 11:35 AM | Tags: experimental advanced
Very interesting.
Eliminating the Static Overhead of Ranges
by vector-of-bool
From the article:
C++20 is slated to receive Ranges, which is probably the most significant library update since the STL itself was introduced...
By Adrien Hamelin | Sep 25, 2019 10:02 AM | Tags: advanced
Only for special cases.
C++ Tricks: Fast RTTI and Dynamic Cast
by Samuel Kahn
From the article:
As introduced in the first post of these series, I will share the first piece of KCL: an implementation of RTTI and Dynamic Cast. The code can be found on GitHub.
If you don’t know what dynamic casting is, then I suggest you read some online resources before diving into this article...
By Adrien Hamelin | Sep 18, 2019 12:42 PM | Tags: advanced
Quick A: by making sure only one instance of each parent class is created.
Recently on SO:
How does virtual inheritance solve the “diamond” (multiple inheritance) ambiguity?
You want: (Achievable with virtual inheritance)
A / \ B C \ / DAnd not: (What happens without virtual inheritance)
A A | | B C \ / DVirtual inheritance means that there will be only 1 instance of the base A class not 2.
Your type D would have 2 vtable pointers (you can see them in the first diagram), one for B and one for C who virtually inherit A. D's object size is increased because it stores 2 pointers now; however there is only one A now.
So B::A and C::A are the same and so there can be no ambiguous calls from D. If you don't use virtual inheritance you have the second diagram above. And any call to a member of A then becomes ambiguous and you need to specify which path you want to take.