__cplusplus User Group issueshttps://git.gsi.de/SDE/cxx-user-group/-/issues2021-09-23T07:41:26Zhttps://git.gsi.de/SDE/cxx-user-group/-/issues/6std::unique_ptr introduction2021-09-23T07:41:26ZMatthias Kretzstd::unique_ptr introductionMeeting 21-38Dennis Kleind.klein@gsi.deDennis Kleind.klein@gsi.dehttps://git.gsi.de/SDE/cxx-user-group/-/issues/3Modern C++: how inheritance and virtual functions fell out of fashion2021-10-07T13:06:27ZMatthias KretzModern C++: how inheritance and virtual functions fell out of fashionC++ experts seem to agree that the need for inheritance and virtual functions has declined, while solutions based on generic functions and classes have become more and more important.
The talk should compare OO and generic programming pa...C++ experts seem to agree that the need for inheritance and virtual functions has declined, while solutions based on generic functions and classes have become more and more important.
The talk should compare OO and generic programming paradigms and how C++ supports both of them. The performance and maintenance aspects should be discussed. Most importantly examples should compare the different approaches.Meeting 21-40Matthias KretzMatthias Kretzhttps://git.gsi.de/SDE/cxx-user-group/-/issues/1Lambda expressions2021-10-21T06:54:29ZMatthias KretzLambda expressionsMeeting 21-42m.alfonsim.alfonsihttps://git.gsi.de/SDE/cxx-user-group/-/issues/23Modern CMake2022-03-21T14:30:10ZDennis Kleind.klein@gsi.deModern CMakeMeeting 21-44Dennis Kleind.klein@gsi.deDennis Kleind.klein@gsi.dehttps://git.gsi.de/SDE/cxx-user-group/-/issues/25const-correctness in C++2021-11-17T16:51:10ZMatthias Kretzconst-correctness in C++Meeting 21-46Matthias KretzMatthias Kretzhttps://git.gsi.de/SDE/cxx-user-group/-/issues/26Constexpr, Strict type-checking & mp-units2021-12-14T10:42:14ZMatthias KretzConstexpr, Strict type-checking & mp-unitsMeeting 21-48Ralph J. SteinhagenRalph J. Steinhagenhttps://git.gsi.de/SDE/cxx-user-group/-/issues/27an overview of literals2022-01-12T19:52:25ZMatthias Kretzan overview of literals* character literals
* string literals
* integer literals (decimal, octal, hexadecimal or binary)
* floating-point literals (float, double, or long double)
* digit separators
* boolean literals
* nullptr
* user-defined literals* character literals
* string literals
* integer literals (decimal, octal, hexadecimal or binary)
* floating-point literals (float, double, or long double)
* digit separators
* boolean literals
* nullptr
* user-defined literalsMeeting 22-02Matthias KretzMatthias Kretzhttps://git.gsi.de/SDE/cxx-user-group/-/issues/19Static Analysis Part I: `clang-tidy` and `clangd`2022-01-26T16:17:32ZDennis Kleind.klein@gsi.deStatic Analysis Part I: `clang-tidy` and `clangd`* Usage
* Integration with CMake
* Integration with IDE (LSP)
* How does it work?
* Examples* Usage
* Integration with CMake
* Integration with IDE (LSP)
* How does it work?
* ExamplesMeeting 22-04Dennis Kleind.klein@gsi.deDennis Kleind.klein@gsi.dehttps://git.gsi.de/SDE/cxx-user-group/-/issues/29my work: simd research, libstdc++ and GCC development, C++ committee2022-02-09T15:59:10ZMatthias Kretzmy work: simd research, libstdc++ and GCC development, C++ committeeMeeting 22-06Matthias KretzMatthias Kretzhttps://git.gsi.de/SDE/cxx-user-group/-/issues/30distributed real-time programming & event-sourcing pattern2022-03-29T18:41:57ZMatthias Kretzdistributed real-time programming & event-sourcing patternMeeting 22-10Ralph J. SteinhagenRalph J. Steinhagenhttps://git.gsi.de/SDE/cxx-user-group/-/issues/31Buildsystems Demystified2022-03-29T18:39:59ZChristian TackeBuildsystems DemystifiedIn #23 we looked at modern CMake.
Sometimes it feels like (meta) build systems / generators like CMake do a lot of magic and you need to study five years of rocket science to know what these things really do.
This live demo tries to sh...In #23 we looked at modern CMake.
Sometimes it feels like (meta) build systems / generators like CMake do a lot of magic and you need to study five years of rocket science to know what these things really do.
This live demo tries to show the most important ingrediensts of C++ projects being built using CMake from the ground up:
* Call the compiler manually
* Automate using script
* Automate using simple Makefile
* Add some bells and whistles
* Add dependencies
* automate dependency tracking
* Be mostly happy!
* Rewrite using CMakeMeeting 22-12Christian TackeChristian Tackehttps://git.gsi.de/SDE/cxx-user-group/-/issues/12argument-dependent lookup (ADL) and hidden friends2022-04-06T22:10:42ZMatthias Kretzargument-dependent lookup (ADL) and hidden friendsMeeting 22-14Matthias KretzMatthias Kretzhttps://git.gsi.de/SDE/cxx-user-group/-/issues/8std::span — getting rid of pointer and size2022-05-16T07:43:16ZMatthias Kretzstd::span — getting rid of pointer and sizeC++ does not support passing around variably sized arrays by value. The closest is to pass `std::vector<T>`. But you don't always have your data in the exact `std::vector<T>` chunks to make that a viable interface. So instead, we pass a ...C++ does not support passing around variably sized arrays by value. The closest is to pass `std::vector<T>`. But you don't always have your data in the exact `std::vector<T>` chunks to make that a viable interface. So instead, we pass a pointer to the start of the array and an integer to tell the function how many elements after the pointer are valid array accesses. Example: you have a `vector<int> data` and want to pass the elements from index `n` to `n+16` to a function. `std::span` abstracts this use case and integrates more or less into the APIs of the C++ standard library.Meeting 22-18a.krimma.krimmhttps://git.gsi.de/SDE/cxx-user-group/-/issues/20Static Analysis Part II: custom `clang-tidy` checks2022-05-18T15:37:12ZDennis Kleind.klein@gsi.deStatic Analysis Part II: custom `clang-tidy` checks* AST
* clang's `libTooling` API
* Invoke compiler
* Check anatomy: Matcher, Diagnostic, Fixit
* Example walkthrough* AST
* clang's `libTooling` API
* Invoke compiler
* Check anatomy: Matcher, Diagnostic, Fixit
* Example walkthroughMeeting 22-20Dennis Kleind.klein@gsi.deDennis Kleind.klein@gsi.dehttps://git.gsi.de/SDE/cxx-user-group/-/issues/33Open Common-Middleware – OpenCMW2022-07-10T09:51:20ZMatthias KretzOpen Common-Middleware – OpenCMWMeeting 22-24Ralph J. SteinhagenRalph J. Steinhagenhttps://git.gsi.de/SDE/cxx-user-group/-/issues/13type punning / strict aliasing / proper casts2022-07-21T06:22:49ZMatthias Kretztype punning / strict aliasing / proper casts* C casts
* `reinterpret_cast`
* `std::memcpy`
* [`std::bit_cast`](https://en.cppreference.com/w/cpp/numeric/bit_cast)
* [start_lifetime_as](https://wg21.link/p0593)
* aliasing rules* C casts
* `reinterpret_cast`
* `std::memcpy`
* [`std::bit_cast`](https://en.cppreference.com/w/cpp/numeric/bit_cast)
* [start_lifetime_as](https://wg21.link/p0593)
* aliasing rulesMeeting 22-29m.alfonsim.alfonsihttps://git.gsi.de/SDE/cxx-user-group/-/issues/34Yet-Another-Serialiser (YAS)2023-02-09T08:55:01ZRalph J. SteinhagenYet-Another-Serialiser (YAS)### or: why we are not reusing and opted to write yet another custom data serialiser
* Serialisation is key when information has to be transmitted, stored and later retrieved by (often quite) different subsystems, architectures and/or p...### or: why we are not reusing and opted to write yet another custom data serialiser
* Serialisation is key when information has to be transmitted, stored and later retrieved by (often quite) different subsystems, architectures and/or programming languages.
with a multitude of different serialiser libraries, a non-negligible subset of these claim to be the fastest, most efficient, easiest-to-use or <add your favourite superlative here>
this is true for most libraries' original use-case but often breaks down for other applications.
* This talk aims at motivating our compile-time reflection based approach used in OpenCMW
[supporting slides](/uploads/5fbe8245d5c4100e5ed0a1cb2d789464/20221012_Cpp_UG_Meeting_Serialiser.pdf)
[supporting slides (expanded)](/uploads/114531b93342bab164635a6c5edc6494/20221012_Cpp_UG_Meeting_Serialiser-expanded.pdf)
[supporting slides (sources)](/uploads/4efb5dcd59f2266a3855f258a6f8a762/20221012_Cpp_UG_Meeting_Serialiser.odp)Meeting 22-41Ralph J. SteinhagenRalph J. Steinhagenhttps://git.gsi.de/SDE/cxx-user-group/-/issues/36Data analysis with ROOT RDataFrame: what I like and what I would like2022-11-17T08:20:48ZMatthias KretzData analysis with ROOT RDataFrame: what I like and what I would likeMeeting 22-45m.alfonsim.alfonsihttps://git.gsi.de/SDE/cxx-user-group/-/issues/37C++ committee meeting Kona '22 - trip report2022-11-24T06:39:40ZMatthias KretzC++ committee meeting Kona '22 - trip reportMeeting 22-47Matthias KretzMatthias Kretzhttps://git.gsi.de/SDE/cxx-user-group/-/issues/38WebAssembly: compiling C++ for the web and more2022-11-30T15:41:47Za.krimmWebAssembly: compiling C++ for the web and more- What is Webassembly?
- overview
- differences to traditional c++ programs
- How can C++ be used for applications in the web browser
- compatible UI frameworks: Qt, SDL, imgui
- toolchains and build support
- emcc, emmake, emcmake...- What is Webassembly?
- overview
- differences to traditional c++ programs
- How can C++ be used for applications in the web browser
- compatible UI frameworks: Qt, SDL, imgui
- toolchains and build support
- emcc, emmake, emcmake, toolchain file
- special compiler flags
- limitations
- special solutions
- support wasm and native targets from the same codebase
- embed webassembly artifacts into native server applications using cmake, externalProject and cmakeRC
- running webassembly outside of the webbrowser: node, wasmtimeMeeting 22-48a.krimma.krimm2022-11-30