Decoding the DNA of Innovation
The Dynamic Landscape of C++ Standardization
C++


C++ Origin and impacts
- First appeared at 1985, split from C language
- First considered as "C with classes"...
- Became so much more!

Where C++ is used?
- Energy management (e.g. Solar)
- Cars and autonomous cars
- Browsers
- Cell phones
- IoT devices
- Game Engines
- Graphics Libraries (Open GL)
- GPUs (Gaming, ML and AI)
- Low Latency Finance
- Windows (other OS)
- ... And many more!







Nice to meet you!
I'm Inbal Levi
I'm C++ Software Engineer



I'm also heavily involved in the international C++ community





Speaker and organizer of C++ conferences
A leader in C++ standardization committee


#include <iostream>
int Multiply(int n) {
return n * 2;
}
int main()
{
std::array<int, 10> res = {0};
// Initialize data by 0-9
for (int i = 0 ; i < SIZE ; i++) {
res[i] = i;
}
// Update data values (calling Multiply)
for (int i = 0 ; i < SIZE ; i++) {
res[i] = Multiply(res[i]);
}
// Print data values [0, 2, 4, ..., 18]
int i = 0;
std::cout << "[";
for (; i < SIZE - 1 ; i++) {
std::cout << res[i] << ", ";
}
std::cout << res[i] << "]\n";
}
https://godbolt.org/z/P9Eer3sK7

What does C++ look like?

#include <ranges>
#include <print>
#include <vector>
int main()
{
auto res = std::views::iota(0, 10)
| std::views::transform([](const auto i){
return i*2;
});
std::println("{}", res);
}
https://godbolt.org/z/75fvGv5nq
What does C++ look like?

(C++11: lambdas)

C++98
C++23

How did we get here?
(C++14: auto)

C++98
C++23

How did we get here?
Compiled
(to Byte Code)
Languages



Compiled Languages





Interpreted
Languages
A short recap - compiled languages
(C++17: transform)
* this one is C++20 "transform"

C++98
C++23

How did we get here?
(C++20: ranges (and views))

C++98
C++23

How did we get here?
(C++23: print)


C++98
C++23
How did we get here?

From https://www.reddit.com/r/cpp/comments/17vnfqq/
202311_kona_iso_c_committee_trip_report_second/
What the future hold?



Herb Sutter
WG21 Convenor
Prf. Bjarne Stroustrup
C++ Inventor
Development by ISO Standards Committee


Development by ISO Standards Committee
1985
First Appeared
C++98
First standard release
(worked on since 89')
C++03
Bug fixes
(Second release)
C++14
Bug fixes
C++11
Major release
(Start 3 years cycle)
C++17
Major release
C++23
Major release
C++20
Major release
C++26
Major release
13 Years
5 Years
8 Years
3 Y
3 Y
3 Y
3 Y
3 Y

From https://isocpp.org/ (by Herb Sutter)
Development by ISO Standards Committee
From https://isocpp.org/ (by Herb Sutter)

How does a feature go into C++?


"pointers provenance" - how long can the mail thread be?
350




Sounds simple, right?
- Get fresh perspectives
- Get new people into the system
- Get newcomers up to speed
- Make sure knowledge is expressed
- But also, preserve knowledge
- Create a shared knowledge base
- Make arguments based on data
- Scare away the elephant in the room
So how do we innovate?







Today we talked about

Where YOU come in!
- "Core C++" (TLV/Jerusalem Meetup)
- "Haifa::C++" (Haifa area)
-
Israeli National Body (since 2019)
Meetings and info: https://wg21il.github.io/
Inbal Levi
sinbal2lextra@gmail.com
linkedin/inballevi
Thank You!

Stay in touch!





Decoding the DNA of Innovation
By Inbal Levi
Decoding the DNA of Innovation
- 70