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
​l
inkedin/inballevi

Thank You!

Stay in touch!