What makes C++20/23 so powerful and why newer languages end up copying it ?

Her Cuma öğrenmek | تعلم كل يوم جمعة | every Friday learn | modern C++20/23 programming

 

Merhaba أهلا Hello


Do you want to learn C++ but don't know how or have not programmed before ? If your answer is yes, then please join the best community-centric C++ learning session in the african, arab and turkic world with hands-on exercises.

 

All community events are FREE-of-charge.

 

OVERVIEW
 

C++ is an important industrial programming language with more than 7 million developers world-wide and powers almost all the software infrastructure (includes finance, trading, games, servers, databases, network engines) all the way to mobile devices and constrained embedded systems.

 

FREQUENCY
Every Friday (date: 2022-11-04), the session is of 120 minutes.

 

TIME
1630 - 1830 hrs TRT (UTC+0300) baseline

 

TIME (indicative locations)
1430 - 1630 hrs Abuja
1430 - 1630 hrs Algiers
1430 - 1630 hrs Tunis
1530 - 1730 hrs Cairo
1530 - 1730 hrs Khartoum
1630 - 1830 hrs Ankara
1630 - 1830 hrs Addis Ababa
1630 - 1830 hrs Sana
1630 - 1830 hrs Moscow
1730 - 1930 hrs Abu Dhabi
1830 - 2030 hrs Ashgabat
1930 - 2130 hrs Dhaka
2030 - 2230 hrs Jakarta
2130 - 2330 hrs Kuala Lumpur

 

LANGUAGE
English (instruction)
Arabic, Türkçe, English (QnA, Chat, Mailing list)

 

ONLINE
Online jitsi session that you can attend using your desktop browser.

 

JITSI
https://meet.jit.si/SoftwareHub

 

GIT repository
https://codeberg.org/SoftwareHub

 

TOOLCHAIN
GNU g++ 12.1.x
GNU g++ 13.0.0 'main' (we build GNU toolchain every thursday)

 

ONLINE COMPILER 'COLIRU'
http://coliru.stacked-crooked.com/

 

PLATFORM
x86_64 GNU/Linux ArchLinux (glibc 2.35, latest).
x86_64 GNU/Linux Debian (glibc 2.35, bookworm).

 

ZULIPCHAT
https://softwarehub.zulipchat.com/

 

NOTE
Participants are encouraged to install GNU/Linux systems either on their desktop, laptop or a hosted VM for best learning and exploratory experience.

 

C++ SESSION OVERVIEW
We take a legacy-free approach to learning C++20/23. We focus on what C++ core language and libraries have to offer today in terms of feature sets and capabilities. g++ and libstdc++ updates will reflect coverage of new topics.

 

The indicative topics of coverage and the focus during the next 48-sessions

 

TOPICS

  • Writing a Minimal C++ program and then tracing through the code and debug the code all the way to the executable / library.
  • Hello C++ module. What it is and viewing it as a unit of deployment.
  • Understanding what is a type. Built-in types.
  • Variable expressions, constants and values.
  • Literals. Character literals and String literals.
  • Block structured code. Notions of Scope and Life-time.
  • Notion of a Function. Memory model. Scope. Parameters. Return and return type.
  • Notion of a asynchronous function. Concurrency lite.
  • Expression categories
  • User-defined types. Construction. Destruction
  • Memory layout models. Stack, Heap. Notion of a resource handle.
  • Error handling. error code. static_assert
  • User-defined type memory layout under a microscope.
  • Working with GNU debugger on a C++ user-defined data type.
  • Enumeration. scoped enums
  • Expression categories in depth.
  • Copy-semantics
  • Move-semantics
  • Generics. What is generic programming ?
  • 'auto' in the game. auto, const auto, auto &
  • Expressing an Operation parameterized by Types | Values.
  • Writing a Generic function.
  • Function template Instantiation and Specialization.
  • Function template Overload and Selection rules.
  • Functional Composition.
  • Concepts as a mechanism to Specify Semantic requirements on constrained-types.
  • Move work from run-time to Compile time
  • constexpr, consteval and constinit
  • Function template object, Functor
  • Revisit Scope and Lifetime. Closure and Capture semantics
  • Lambda expressions. closure type. Capture semantics
  • Generic Lambda
  • Constraints on types and Polymorphism revisited.
  • Type functions and Type traits
  • Models of Sequence representation. Ranges.
  • Standard library containers.
  • Variadic template and perfect forwarding
  • Mathematical semantics of C++ concurrency.
  • C++ memory model
  • Asynchronous and Concurrent programming in C++
  • Functional paradigm for a database driver implementation.
  • Know your C++ toolchain (GNU g++, compiler options) and static analysis tooling
  • C++ Core Guidelines. How to incorporate in your work
  • Using the C++ standard library which is nearly 2/3rd of the ISO C++ standard and provides rich functionality.

 

RSVP
All community events are FREE-of-charge. 

 

RSVP is required for every individual session. 

 

Right to admission is reserved !

  • use C++ for real work. When people mix programming languages on a project that's almost always a mistake.

    https://youtu.be/RfWGJS7rckk

    #cplusplus #isocpp #cpp #programming #programminglanguage #productivity #programmer #softwaredevelopment #ankara #turkey #turkiye #ankara #SoftwareHub #Linux
    Read more
    Read less
Friday, October 21, 2022
13:30 - 15:30
Africa/Abidjan
Online
CREATED BY
SoftwareHub