Tag: moderncpp

What’s New in Conan 2.0 C/C++ Package Manager – Diego Rodriguez-Losada – CppCon 2022

  • Lobby
  • Tag Archives: moderncpp

https://cppcon.org/
---

What's New in Conan 2.0 C/C++ Package Manager - Diego Rodriguez-Losada - CppCon 2022
https://github.com/CppCon/CppCon2022

During the 4+ years since Conan 1.0 was released, we have continued to learn from the C++ ecosystem as we watched it grow; learning many lessons, challenges and trends in the industry from the feedback from tens of thousands of conversations with users and customers, including many of the largest C++ related companies in the world. This talk summarizes some of these lessons, and how they have been used to create the new major version of Conan.

For example, while many advocate for header-only or always static linkage, the usage of shared libraries and especially shared libraries that link and embed other static libraries is a very common pattern in the industry. Conan 2 implements “requirement traits” that go beyond CMake private/public usage requirements, to allow specifying complex dependency graphs, including bootstrapping, cross-building with tools, private dependencies and much more.

Many teams produce libraries, applications, SDKs or other artifacts that need to be deployed or consumed by other teams with different technologies (like Java, Node, etc) and not using Conan. Conan 2 new “deployers”, which can be user defined, allow easy extraction of artifacts, as well as automation to create Debian packages, Windows installers or any other type of derived artifact.

There are many enterprise, very large C and C++, projects that need to manage binaries (Bills of Materials), not only to reduce build times, but also for traceability, security, industry policies, etc. Creating and managing binaries at scale is still a big challenge. Conan 2 provides much simpler “lockfiles” to allow full reproducibility of the dependency graph, a new custom user defined global binary compatibility mechanism, and a more accurate computation of what package binaries need to be rebuilt when some dependency changes.

Finally, we learned that package management is yet another piece in a larger DevOps, Continuous Integration, automation, and developer experience puzzle, and many users have been building different layers of automation over Conan. So Conan 2 releases a new public Python API (around 65% of users are already using Python for automation of C and C++), and new custom defined modular commands to extend the Conan CLI.
---

Diego Rodriguez-Losada

Diego Rodriguez-Losada‘s passions are robotics and SW engineering and development. He has developed many years in C and C++ in the Industrial, Robotics and AI fields. Diego was also a University (tenure track) professor and robotics researcher for 8 years, till 2012, when he quit academia to try to build a C/C++ dependency manager and co-founded a startup. Diego is a conan.io C/C++ package manager co-creator and maintainer, now working at JFrog as Conan Lead Architect and C/C++ Advocate.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon #programming #conan

Filed under: UncategorizedTagged with: , , , ,

Killing C++ Serialization Overhead & Complexity – Eyal Zedaka – CppCon 2022

  • Lobby
  • Tag Archives: moderncpp

https://cppcon.org/
---

Killing C++ Serialization Overhead & Complexity - Eyal Zedaka - CppCon 2022
https://github.com/CppCon/CppCon2022

One of the hottest topics in C++ being data serialization, which is a major enabler for inter process communication, persisting the state of the program, or storing information in convenient way. That’s why there are countless data serialization frameworks out there, even ones made for cross programming-language communication.

When considering a serialization framework we face many considerations - convenience of use, performance, size of the library, size of the data, is the library applicable for embedded, support for cross language communication, build system dependencies (for those requiring to generate code in build time), and many more.

If I got you wondering about the above, and you are looking for some modern C++20 zero overhead macro-less serialization that requires close to nothing from you as a developer, together with almost unmatched performance, freestanding/embedded support out of the box, and a fair chance to blow your mind, this session is for you, hope to see you there!
---

Eyal Zedaka

Eyal Zedaka is a technical leader and C++ instructor, with more than 10 years of experience in C++, operating systems and device security. He is currently with Microsoft as principal manager, responsible for OS application sandboxing through virtualization. In the past, Eyal was manager of device security engineering of the Magic Leap augmented reality device, where he lead security features development and security research of the device, as well as the security architecture of the device and SoC from the requirement stage. Eyal designed C++ freestanding libraries for trusted execution environments, worked closely with embedded teams regarding C++ use in lower level areas. He has spoken at CppCon 2021 about using coroutines to implement C++ exceptions in freestanding environment and embedded systems.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon #programming #serialization

Filed under: UncategorizedTagged with: , , ,

10 Tips for Cleaner C++ 20 Code – David Sackstein – CppCon 2022

  • Lobby
  • Tag Archives: moderncpp

https://cppcon.org/
---

10 Tips for Cleaner C++ 20 Code - David Sackstein - CppCon 2022
https://github.com/CppCon/CppCon2022

The objective of this session is to provide guidelines and tips that will help the audience write readable, testable and extensible code with modern C++.
One of the greatest challenges we face, as programmers, is to make sure that our code can be understood and used by our colleagues - and not only by the compiler.

As the complexity of C++ increases, the compiler is able to deduce and optimize more of our code, but often at the cost of making it more obscure for our colleagues.
Code that is difficult to read is difficult to test, to maintain and to extend.

In the session I propose to help the audience understand the core problems that we introduce as our programming becomes more advanced, and how we can avoid them.
The main part of the session will discuss some fairly complex and advanced C++ code which is difficult to understand. I will then demonstrate 10 easily applicable tips to make it easier to understand and to test. The benefits will be clearly evident.

There will also be a short discussion with the audience to increase the confidence that the guidelines and the tips are readily applicable in there own diverse projects.
---

David Sackstein

David is an experienced software programmer, consultant and instructor. His passion is to write readable, extensible and testable code and to help others do the same.
David leverages his broad background with a number of programming languages to achieve this goal in C++ too.
He has spoken at ACCU and at CppCon on coroutines and fibers and demonstrated how these tools can help simplify complex programs in C++.
__

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon #programming #cppprogramming

Filed under: UncategorizedTagged with: , , , , ,

C++ in the World of Embedded Systems – Vladimir Vishnevskii – CppCon 2022

  • Lobby
  • Tag Archives: moderncpp

https://cppcon.org/
---

C++ in the World of Embedded Systems - Vladimir Vishnevskii - CppCon 2022
https://github.com/CppCon/CppCon2022

The talk offers an introduction into the concepts, variety and architectural specifics of embedded systems and reviews the application of the C++ language and the ecosystem for embedded software development. With the focus on the modern C++ features and frameworks that can be leveraged in embedded projects the presentation will explore benefits along with potential implications and limitations of the C++ language utilization. Similarities between embedded and high-performance systems will be highlighted and general availability and applicability of the C++ for the development of embedded code will be assessed. Language features and program constructs that can introduce risks in embedded environments will be reviewed. Examples of the modern C++ software design under conditions of restricted dynamic memory allocation will be presented with focus on publicly available 3-rd party libraries developed for high-performance applications that can be used in embedded projects. Metaprogramming techniques for low-level hardware abstractions will be discussed.
---

Vladimir Vishnevskii

Vladimir is a software engineer with more than 17 years of experience applying C++ for development of complex software in areas like distributed systems and networking with focus on performance and reliability. Before his recent switch to Intel he was for more than 6 years part of the effort to bring modern C++ into automotive embedded software development.
---

Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk

#cppcon #programming #embeddedsystems

Filed under: UncategorizedTagged with: , , , , ,

Breaking Enigma With the Power of Modern C++ – Mathieu Ropert – CppCon 2022

  • Lobby
  • Tag Archives: moderncpp

https://cppcon.org/
---

Breaking Enigma With the Power of Modern C++ - Mathieu Ropert - CppCon 2022
https://github.com/CppCon/CppCon2022

During the Second World War, Alan Turing and his team at Bletchley Park used a very primitive computer to crack the German Enigma machine encryption and allow the Allies to read the Axis secret communications. To achieve this feat they used every trick in the book to reduce the problem to something that could be achieved by an early 1940s electro-mechanical computer.
What if we were nowhere as smart, but got readily access to a 16 cores 2020s CPU and modern C++?

In this talk, we will show a brief history of Enigma's design and cryptoanalysis at the time, and then will try to see if we can break it using a modern machine and some C++20. How many combinations can we try per second using all our cores and with the help of some micro-benchmarking?
---

Mathieu Ropert

French C++ expert working on (somewhat) historical video games. Decided to upgrade his compiler once and has been blogging about build systems ever since. Past speaker at CppCon, Meeting C++ and ACCU. Used to run the Paris C++ User Group. Currently lives in Sweden.
---

Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk

#cppcon #programming #cryptography

Filed under: UncategorizedTagged with: , , , , ,

The Dark Corner of STL in Cpp: MinMax Algorithms – Simon Toth – CppCon 2022

  • Lobby
  • Tag Archives: moderncpp

https://cppcon.org/
---

The Dark Corner of STL in Cpp : MinMax Algorithms - Šimon Tóth - CppCon 2022
https://github.com/CppCon/CppCon2022

How many problems could one possibly run into when calling a simple algorithm such as std::min?

In this talk, we will take a deep dive into the ergonomics of min-max algorithms and explore several language features in the process:
• reference semantics and lifetime issues
• const correctness and use of const_cast
• costs of using the std::initializer_list

We will finish by exploring the options for addressing these issues when implementing functions with similar semantics.
---

Šimon Tóth

Currently on a mission to share my 20 years' worth of Software Engineering experience with the world.
__

Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk

#cppcon #programming #stl

Filed under: UncategorizedTagged with: , , , , , , ,

Breaking Dependencies – C++ Type Erasure – The Implementation Details – Klaus Iglberger CppCon 2022

  • Lobby
  • Tag Archives: moderncpp

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

Breaking Dependencies - C++ Type Erasure - The Implementation Details - Klaus Iglberger - CppCon 2022
https://github.com/CppCon/CppCon2022

“If I could go back in time and had the power to change C++, rather than adding virtual function, I would add language support for Type Erasure …” (Eric Niebler, June 19, 2020, Twitter).

For many developers Type Erasure is superior to inheritance with respect to dependency management. And indeed, it has proven itself to be a powerful design pattern, helping to significantly reduce coupling between software entities. Unfortunately, there is no language support for Type Erasure (yet) and many shy away from the seemingly complex implementation details.

In this talk I will give advice on the different ways of how to implement Type Erasure. I’ll start with two very simple, ~20 line implementations for owning and non-owning Type Erasure Wrappers. But I’ll also go into detail about different performance optimization strategies, such as the manual implementation of virtual functions and the Small Buffer Optimization (SBO). After this talk, attendees will know everything to realize and utilize Type Erasure in their own code bases.
---

Klaus Iglberger

Klaus Iglberger is a freelance C++ trainer and consultant. He has finished his PhD in Computer Science in 2010 and since then is focused on large-scale C++ software design. He shares his expertise in popular advanced C++ courses around the world (mainly in Germany, but also in the rest of the EU and the US). Additionally, he is the initiator and lead designer of the Blaze C++ math library (https://bitbucket.org/blaze-lib/blaze/), one of the organizers of the Munich C++ user group (https://www.meetup.com/MUCplusplus/), and the organizer of the Back-to-Basics track at CppCon.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , , ,

Back to Basics: RAII in C++ – Andre Kostur – CppCon 2022

  • Lobby
  • Tag Archives: moderncpp

https://cppcon.org/
---

Back to Basics: RAII in C++ - Andre Kostur - CppCon 2022
https://github.com/CppCon/CppCon2022

The RAII (Resource Acquisition is Initialization) idiom is a powerful tool used to guard against resource mishandling in C++. Learn about the idiom, examples provided in the Standard Library, and some design considerations for writing your own RAII classes.
---

Andre Kostur

He has been a professional C++ developer for nearly 30 years, and was responsible for introducing and championing the use of C++ in his previous company. He is responsible for forming and leading a C++ Users Group as his current company, routinely presenting on all topics regarding C++ ranging from the basics to the latest developments in C++20 and beyond.
__

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon #programming #raii

Filed under: UncategorizedTagged with: , , , , , ,

A Lock-Free Atomic Shared Pointer in Modern Cpp – Timur Doumler – CppCon 2022

  • Lobby
  • Tag Archives: moderncpp

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

A Lock-Free Atomic Shared Pointer in Modern Cpp - Timur Doumler - CppCon 2022
https://github.com/CppCon/CppCon2022

std::shared_ptr is a standard smart pointer utility widely used in modern C++. A commonly overlooked property of std::shared_ptr is that while its control block is thread-safe, the shared_ptr itself isn't. To fix this, C++20 introduced std::atomic<std::shared_ptr>. However, existing implementations are typically not lock-free, rendering std::atomic<std::shared_ptr> useless for low-latency and real-time applications.

What would it take to implement a lock-free atomic shared_ptr? In this talk, we first discuss the motivation and use case, review how std::shared_ptr works and the history of std::atomic<std::shared_ptr>. We then look at existing implementations and different implementation strategies. Finally, we present a new implementation of a lock-free atomic shared_ptr which is portable to multiple platforms.
---

Timur Doumler

Timur Doumler is the Developer Advocate for C++ tools at JetBrains and an active member of the ISO C++ standard committee. As a developer, he worked many years in the audio and music technology industry and co-founded the music tech startup Cradle. Timur is passionate about building inclusive communities, clean code, good tools, low latency, and the evolution of the C++ language.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , , , , ,

Embracing Trailing Return Types and `auto` Return SAFELY in Modern C++ – Pablo Halpern – CppCon 2022

  • Lobby
  • Tag Archives: moderncpp

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

Embracing Trailing Return Types and `auto` Return SAFELY in Modern C++ - Pablo Halpern - CppCon 2022
https://github.com/CppCon/CppCon2022

In the old days (and in C), the return type of a function was specified at the beginning of its prototype, after the storage-class specifiers, if any. Modern C++ adds two additional ways to specify a function's return type, adding convenience, uniformity of expression, and, in some cases, clarity. Trailing return types were introduced in C++11 and have several potential advantages over leading return types, especially for function templates and lambda expressions. Automatically deduced return types go a step further, allowing the programmer to eschew specification of the return type entirely and letting the compiler do all of the work. These features can be used to great advantage when the return type of a function is complex or is best expressed directly as the type of an expression. Used unwisely, though, deduced return types can impede readability, create excessive coupling between the interface and the implementation of a function, and create latent bugs in template code. In this talk, we will cover the syntax and restrictions for these two new features, examine their relationship to each other, explore several use cases for each, and -- most importantly -- probe potential pitfalls when attempting to employ these language features.
---

Pablo Halpern

Pablo Halpern has been cppcon.digital-medium.co.uk/tag/programming/">programming in C++ since 1989 and has been a member of the C++ Standards Committee since 2007. His major contributions to the standard have been in the areas of parallel and vector cppcon.digital-medium.co.uk/tag/programming/">programming constructs as well as on improvements to the usability of memory allocators. Pablo is a major contributor to the book, Embracing Modern C++ Safely by John Lakos and Vittorio Romeo (2021) and is the author of The C++ Standard Library from Scratch (2000). His current development focus is in moving the API of the open-source BDE library in the direction of the C++17 PMR allocator model. He lives with his partner in Boston, MA. When not working on books and allocators, he enjoys model rocketry, hiking, skiing, snowboarding, and watching opera. He has recently started learning Pickleball.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , , , , ,