C++onSea 2024
Table of Contents
- AI & ML (2 videos)
- Developer Experience (58 videos)
AI & ML
![]() |
Swarm Intelligence Algorithms - Session Interview With Frances Buontempo - C++ On Sea 2024This video features an interview with Frances Buontempo, who will be giving a talk at C++ on Sea 2024 on the topic of swarm intelligence algorithms. The talk will provide an introduction to this subset of AI and machine learning, which utilizes relatively simple mathematical concepts to solve complex problems in a probabilistic manner. |
![]() |
What is Swarm Intelligence? - Swarm AI Explained - Frances Buontempo - C++ on Sea 2024The video provides a concise overview of swarm intelligence, a subset of artificial intelligence that takes inspiration from nature-inspired algorithms. The presenter demonstrates the implementation of the cat swarm optimization algorithm, which uses the behavior of cats to solve optimization problems, and encourages the audience to experiment with these techniques and learn from the process. |
Developer Experience
![]() |
Talk Preview: Building on clang-tidy: move from printf-style to std::print-style logging - #cppThis talk preview discusses how the speaker, Mike Crow, has been using clang-tidy to modernize the code in his company's media players by automating the conversion from printf-style to std::print-style logging. The talk aims to provide insights and inspiration for others who might want to use clang-tidy checks or even write their own to fix code more efficiently. |
![]() |
Jason Turner - Workshop Interview - Understanding Object Lifetime For Efficient and Safer C++This video provides an in-depth exploration of understanding object lifetime in C++ for efficient and safe programming. The speaker, Jason Turner, discusses the importance of object lifetime, the nuances of R-value references, and how to leverage compile-time contexts to optimize C++ code, all while emphasizing interactive and engaging presentation styles for conference talks and workshops. |
![]() |
C++ Workshop and Keynote Preview with Klaus Iglberger for C++OnSea 2024This video provides a preview of the C++ Workshop and Keynote to be presented by Klaus Iglberger at the C++OnSea 2024 conference. Iglberger emphasizes the importance of software design and architecture, noting that it is a crucial yet often overlooked aspect of C++ development, and discusses the practical, hands-on approach he takes in his training sessions to help developers improve their design skills. |
![]() |
Exclusive Interview With Dave Abrahams - Hylo: Generic-programming Language Built on Value SemanticsDave Abrahams discusses his involvement in the creation of the Boost C++ libraries and the motivations behind his work on the Hyo programming language, which is focused on value semantics. He shares insights on the evolution of C++ and the importance of well-designed programming tools to empower developers. |
![]() |
This Is C++ - Exclusive Interview With Jon Kalb ( CppCon Conference Chair ) - C++OnSea 2024 PreviewThe video features an interview with Jon Kalb, the chair of the CppCon conference, discussing his upcoming talk at the C++OnSea 2024 event. Kalb highlights the importance of speakers refining their talks through multiple presentations, the controversy surrounding his talk on move from objects, and the nuances of undefined behavior in C++. |
![]() |
Talk Preview - The Surprising Power of Small Wrapper Classes in C++ - #cplusplus #cpp #programmingThis talk explores the surprising power of small wrapper classes in C++, a technique that enables developers to test and review different parts of their program separately, ensuring the completed program is correct. The speaker will demonstrate the problems that small wrapper classes can solve, how to use and implement them, and common pitfalls to avoid. |
![]() |
Keynote: Not Getting Lost in Translations - Preview Interview with Daniela Engert - C++ On Sea 2024In this interview, Daniela Engert, an electrical engineer with a diverse career background, discusses her upcoming keynote talk at the C++ On Sea 2024 conference. She plans to share her experiences with translation challenges, both in terms of natural languages and programming language concepts, as well as introduce a library she has been developing to address the complexities of formatting and translating output in C++ applications. |
![]() |
Designing and Implementing Safe C++ Applications - Workshop Preview & Interview With Amir KirshThe video discusses Amir Kirsh's upcoming workshop on 'Designing and Implementing Safe C++ Applications' at the C++on C conference. It also touches on Amir's talk at the conference titled 'Hiding your implementation details is not so simple', which explores the challenges of balancing design principles and practical implementation in C++ development. |
![]() |
Fix your hardest bugs with ease with Time Travel Debugging - Session Interview With Greg LawThis video discusses the use of time travel debugging, a powerful technique for fixing complex bugs, especially in multithreaded applications. The speaker, Greg Law, co-founder and CEO of Undo, explains how their time travel debugging tool, which integrates with GDB, allows developers to record and replay the execution of their code, enabling them to easily identify and fix even the most challenging bugs. |
![]() |
C++ On Sea 2024 Preview: How to keep your binaries small? - Sandor DARGO #cplusplus #cpp #binariesThis talk explores techniques to keep C++ binaries small, covering the impact of coding practices, compiler and linker settings, and the trade-offs involved. Attendees will learn best practices, optimization methods, and compromises to help limit the size of their compiled binaries. |
![]() |
C++ On Sea 2024 Preview: Testable by Design - Steve Love #cpp #cplusplus #softwaretestingIn this talk, Steve Love explores the principles of designing C++ code with testability in mind. He will discuss how modern C++ features can enhance code clarity and readability, and how these aspects relate to the overall design process, benefiting both novice and experienced C++ developers. |
![]() |
Talk Preview: How Symbols Work and Why We Need Them - Anders Schau Knatten #cpp #cplusplusExplore the intricacies of symbols in C++, delving into their inner workings, importance, and various aspects such as binding, visibility, linkage, symbol tables, and more. This talk promises to provide a comprehensive understanding of the fundamental yet fascinating world of symbols, empowering attendees to harness their power effectively in their C++ projects. |
![]() |
Talk Preview: A new dragon in the den: fast conversion from floating-point numbers - Cassio NeriIn this talk, the speaker presents a novel algorithm for converting floating-point numbers to strings, which is faster and simpler than existing solutions. The talk explores the inner workings of floating-point numbers and the mythological creature that inspired the naming of the speaker's algorithm. |
![]() |
C++ On Sea 2024 Preview - Aleksei Veselovskii - LSAN and ASAN: tips, tricks and hacks #cplusplusThis talk will provide an in-depth exploration of the internals of the Address Sanitizer (ASAN) and Leak Sanitizer (LSAN) tools, which are powerful tools for detecting memory-related errors in C++ applications. The speaker will cover the system programming techniques that underlie these sanitizers, their public APIs, and how to use them effectively, including tips and tricks for optimizing their output. |
![]() |
C++ Workshop and Talk Preview With Nicolai Josuttis for C++OnSea 2024Nicolai Josuttis, an experienced C++ instructor, discusses his upcoming C++ 20 workshop and talk at C++OnSea 2024. He emphasizes the importance of understanding the concepts, motivations, and practical applications of new C++ features, rather than just learning syntax through code snippets. |
![]() |
A Kaleidoscope of C++ Lambdas - Dawid Zalewski - C++ on Sea 2024This talk explores the evolution and applications of C++ lambdas, covering their history, limitations, and the various features introduced in different C++ standards. It highlights how lambdas have become a powerful tool for expressing complex ideas and implementing functional programming concepts in C++. |
![]() |
C++ Cache Friendly Data + Functional + Ranges = ❤️ - Björn Fahller - C++ on Sea 2024This presentation explores how to create cache-friendly data structures in C++ by combining functional programming techniques with range-based interfaces. The speaker showcases an experimental library that provides a flexible and performant way to work with structured data, addressing challenges around stable row IDs, iterators, and column selection. |
![]() |
OLD VERSION: Understanding The constexpr 2-Step - Jason Turner - NEW LINK IN DESCRIPTIONThis talk explores the use of constexpr in C++20, demonstrating techniques to efficiently create and work with dynamic data structures at compile-time, including methods to right-size arrays and generate views into compiled data. The speaker covers various approaches, highlighting the benefits and tradeoffs, and emphasizes the importance of writing correct, composable code through the use of constexpr functions. |
![]() |
Reusable C++ Code, Reusable C++ Data Structures - Sebastian Theophil - C++ on Sea 2024The talk discusses strategies for writing reusable C++ code and data structures, emphasizing the use of generic functions, templated classes, and design patterns like the Curiously Recurring Template Pattern (CRTP) to achieve code reuse without the drawbacks of runtime polymorphism. The speaker also cautions against overusing language features like std::variant, which can lead to code bloat and the reinvention of polymorphism. |
![]() |
Hiding Your Implementation Details in C++ is Not So Simple - Amir Kirsh - C++ on Sea 2024The talk discusses the importance of hiding implementation details in C++ and the challenges involved. It provides examples and solutions for effectively encapsulating information and exposing only the necessary interfaces to users, thereby improving maintainability, testability, and flexibility of the codebase. |
![]() |
C++ Abstraction Patterns for Cross Platform Development in C++ Software Engineering - Al-Afiq YeongThe presentation discusses various abstraction patterns for cross-platform C++ software development, including the use of preprocessor macros, runtime polymorphism, the pimpl idiom, build systems, and C++20 modules. The speaker provides insights and trade-offs for each approach, highlighting the challenges and potential solutions for creating a unified and maintainable cross-platform abstraction. |
![]() |
C++ Object Lifetimes - Objects and Lifetimes in C++ Explained - Jonathan Müller - C++ on Sea 2024The talk explores the concept of object lifetimes in C++, covering topics such as storage duration, implicit object creation, type punning, and the implications of invalid and zombie pointers. The speaker provides practical guidelines for writing safe and maintainable C++ code by leveraging the appropriate language constructs and avoiding common pitfalls. |
![]() |
C++ Fundamentals - Algorithms - Klaus Iglberger - C++ on Sea 2024This talk explores the power and versatility of C++ algorithms, highlighting how they can be used to write concise, readable, and efficient code. The speaker demonstrates various algorithms, including finding the youngest person in a vector, partitioning a vector based on a condition, and efficiently summing the ages of a vector of people, showcasing the benefits of using algorithms over manual loop-based implementations. |
![]() |
Improving Our Safety With a Modern C++ Quantities and Units Library - Mateusz Pusz - C++ on Sea 2024The presentation discusses a modern C++ library for quantities and units that aims to improve safety in software development, especially in critical applications. The library provides compile-time type safety, automatic unit conversions, and specialized abstractions for physical quantities, addressing common issues encountered when working with units and measurements. |
![]() |
C++ Run-Time Optimizations for Compile-Time Reflection - Kris Jusiak - C++ on Sea 2024This talk explores how C++ developers can leverage compile-time reflection and low-level hardware control to optimize runtime performance. The speaker demonstrates various techniques, including SIMD optimization, switch-case generation, and minimal perfect hashing, to improve the efficiency of common operations like enum-to-string conversion and string-to-ID mapping. |
![]() |
Floating-Point to String Conversion in C++: Exploring Algorithms & Performance - Cassio Neri - 2024This talk explores the problem of converting floating-point numbers to strings, delving into the algorithms and performance considerations involved. The speaker presents a simplified algorithm called the 'Jaguar', which is inspired by Guarani mythology and outperforms existing solutions in various benchmarks. |
![]() |
Who Needs C++ Unit Tests Anyway? - Modernizing Legacy Code with 0% Code Coverage - Jan Baart 2024This talk discusses strategies for modernizing legacy C++ codebases with 0% code coverage. The speaker covers understanding the existing codebase, improving maintainability, upgrading the language and tooling, and introducing unit tests, while also addressing the human factors involved in such a process. |
![]() |
Practical Tips for Safer C++ - Tristan Brindle - C++ on Sea 2024The talk covers practical tips for writing safer C++ code, including addressing issues with numeric safety, bound safety, and memory safety. The speaker emphasizes the importance of using compiler options, libraries, and testing techniques to mitigate undefined behavior and improve the overall safety and quality of C++ applications. |
![]() |
Unlock the Power of Parallel Computing With SWAR (SIMD Within A Register) - Jamie Pond - C++ on SeaThis talk introduces SWAR (SIMD Within A Register), a technique for achieving parallelism without specialized hardware. The presenter demonstrates how to implement common operations like string length and equality using SWAR, showcasing its performance benefits and the power of generic programming to enable efficient parallel computations. |
![]() |
Fantastic C++ Bugs and How to Test Them - Robert Leahy - C++ on Sea 2024The talk explores the importance of unit testing in C++ development, highlighting how it can help uncover subtle bugs, improve productivity, and ensure the reliability of software artifacts. The speaker presents various techniques and strategies for writing effective unit tests, including mocking global resources, testing for exceptional cases, and leveraging tools like local stack to create isolated testing environments. |
![]() |
Elevating Precision in C++ - A Journey Below the Surface of Floating-Point - Tom Tesch - C++ on SeaThis talk explores the intricacies of floating-point representation in C++, delving into the history, modern advancements, and practical applications of techniques like Decker doubles to improve precision. The speaker provides a comprehensive overview of the underlying mechanisms and challenges associated with floating-point arithmetic, equipping the audience with a deeper understanding of this fundamental aspect of programming. |
![]() |
Time Travel Debugging - Debug Complex C++ Bugs With Software from Undo - Mark Williamson - 2024This talk provides an overview of time travel debugging, a technique that allows developers to record and replay the execution of their C++ programs to debug complex issues. The speaker demonstrates how time travel debugging works, including how it captures non-deterministic events, and discusses the design decisions involved in building a time travel debugging system. |
![]() |
Testable by Design - How to Create Testable C++ Code Using C++ Language Features - Steve Love - 2024The talk explores how to design testable C++ code by embracing uncertainty, using language features like abstract base classes, dependency injection, and chain of responsibility patterns. The speaker demonstrates techniques to create modular, extensible, and maintainable C++ code that is easy to test, even in the face of unknown third-party dependencies. |
![]() |
Being Friendly to Your Computer Hardware in Software Development - Ignas Bagdonas - C++ on Sea 2024The talk provides an in-depth exploration of the intricate relationship between hardware and software in computer systems, delving into the complexities of memory architectures, processor designs, and the challenges of optimizing performance by understanding the underlying hardware. The speaker covers a range of topics, from the intricacies of dynamic memory management to the nuances of instruction decoding and out-of-order execution, offering insights and practical advice for software developers to better leverage the capabilities of their computer hardware. |
![]() |
C++ Iteration Revisited 2024 - Tristan Brindle - C++ on Sea 2024The talk discusses a C++ library called 'flux' that aims to provide a safer, better-performing, and more user-friendly iteration model compared to the standard library's iterators. The speaker demonstrates how flux's design choices, such as using indices instead of iterators and providing safe operations by default, can lead to improved safety and performance compared to traditional C++ iteration approaches. |
![]() |
Keynote: There Is No Silver Bullet to Solve All C++ Software Problems - Klaus Iglberger - C++ on SeaThe speaker discusses the challenges of solving C++ software problems, highlighting the need for thoughtful architectural design over relying on a single language feature or programming paradigm. He emphasizes the importance of considering both the advantages and disadvantages of different approaches, as there is no one-size-fits-all solution. |
![]() |
Allocator-Aware C++ Type Design - Jonathan Coe - C++ on Sea 2024The talk discusses the motivation for adding allocator support to C++ types, using the example of a simple 'Dynamic Optional' type. The speaker explains the Lego analogy they developed to understand allocators and how they implemented allocator support in the 'Dynamic Optional' type. |
![]() |
C++20 Modules - Review of the Current State of C++ Modules 2024 - Luis Caro Campos - C++ on Sea 2024The talk provides an overview of the current state of C++ modules, including the advantages of modules over header includes, the challenges of packaging and consuming module libraries, and the ongoing efforts to improve the tooling and compatibility around C++ modules. |
![]() |
How to Implement the C++ Standard Library (Part 2): An Excursion into libc++ - Christopher Di BellaThe speaker demonstrates the process of implementing the C++ standard library's `fold_right` algorithm in the libc++ project. They cover topics such as following best practices, using compiler extensions, and addressing issues related to ABI compatibility and visibility. |
![]() |
How and When To Write a C++ Template - Roth Michaels - C++ on Sea 2024The talk covers the basics of C++ templates, including class templates, function templates, alias templates, and variable templates. It also discusses when and how to use templates, as well as tools like CPP Insights that can help understand how templates work under the hood. |
![]() |
Pets, Cattle and Automatic Clang Operations with C++ Code - Svyatoslav Feldsherov - C++ on Sea 2024This talk explores how to effectively manage and automate repetitive tasks in large C++ codebases using Clang tools like Clang Matchers and Clang Transform. The speaker shares practical examples of finding, fixing, and generating code using these powerful tools, highlighting their ability to streamline complex refactoring and maintenance efforts in projects of all sizes. |
![]() |
Practical Production-Proven Constexpr API Elements - Marcus Boerger - C++ on Sea 2024The talk covers practical usage of constexpr in C++ programming, including the implementation of hash functions, objects, and containers that can be evaluated at compile-time. The speaker discusses the challenges and limitations of constexpr in C++20 and C++23, and presents a library of production-proven constexpr containers that aim to be as compatible with the standard library as possible. |
![]() |
Dependency Injection in C++ - A Practical Guide - Peter Muldoon - C++ on Sea 2024This talk provides a practical guide to using dependency injection in C++ to improve the maintainability and testability of large-scale, real-world systems. The speaker shares strategies for overcoming common challenges and myths associated with dependency injection, and emphasizes the importance of proper code factoring and abstraction to make dependency injection more manageable in complex codebases. |
![]() |
Hylo - The Safe Systems and Generic-programming Language Built on Value Semantics - Dave AbrahamsThe video discusses the development of Hilo, a programming language focused on value semantics and generic programming, as a response to the challenges and limitations of C++ and Swift. The speaker highlights Hilo's design principles, such as fast by definition, source safe by default, normal by inclination, and simple by design, and how it aims to address the shortcomings of existing languages in terms of performance, safety, and expressiveness. |
![]() |
Introduction to C++ Coroutines and gRPC and How to Write Coroutine Support Code - Jonathan StoreyThe speaker discusses how C++ coroutines can be used to implement performant and easy-to-use gRPC server implementations, and provides a walkthrough of writing coroutine support code to integrate coroutines with gRPC's reactor pattern. The talk covers the basics of coroutines, implementing a simple coroutine, integrating coroutines with gRPC's asynchronous call model, and potential future directions for coroutine-based gRPC development. |
![]() |
Properties Of Unit Tests in C++ - Arne Mertz - C++ on Sea 2024This talk discusses the properties and best practices of unit tests in C++. The speaker covers topics such as the purpose of unit tests, the characteristics of good unit tests, and strategies for designing and organizing unit tests to ensure maintainability, readability, and efficiency. |
![]() |
C++ Core and Other C++ Guidelines - The Good, the Bad, the… Questionable? - Arne Mertz - C++ on SeaThe talk discusses various C++ guidelines found in the wild, analyzing their rationale, context, and applicability. The speaker emphasizes the importance of understanding the purpose of guidelines, using automated tools, and maintaining a flexible, project-specific approach to coding standards. |
![]() |
Building on clang-tidy to Move From printf-style to std::print-style Logging and Beyond - Mike CroweThe speaker discusses their journey of modernizing legacy C++ code, focusing on transitioning from printf-style to std::print-style logging. They describe their experience of building upon clang-tidy, a static analysis tool, to automate the conversion of thousands of lines of code safely and efficiently. |
![]() |
Catching Real-time Safety Violations in C++ - Dave Rowland - C++ on Sea 2024The presentation covers various tools and techniques for detecting real-time safety violations in C++ code, including GUI tools, command-line tools, and custom code instrumentation. The speaker provides a comprehensive overview of the challenges and trade-offs involved in ensuring real-time safety in C++ applications, highlighting the importance of understanding the underlying operating system and kernel behavior. |
![]() |
What Is a Range in C++? - Šimon Tóth - C++ on Sea 2024This talk provides a comprehensive overview of ranges in C++, covering their definition, categories, and the importance of using universal references when working with ranges. The speaker also discusses views, input ranges, and common ranges, highlighting the key considerations and best practices for using these concepts effectively. |
![]() |
Comparison of C++ Performance Optimization Techniques for C++ Programmers - Eduardo Madrid 2024The presentation discusses the performance optimization techniques used in the Su library, a C++ library that aims to provide high-performance implementations of common operations. The presenter showcases how the Su library's approaches, such as using SIMD instructions and avoiding unnecessary branching, outperform the implementations in the standard C++ library, while also emphasizing the importance of understanding the underlying hardware and software principles to achieve optimal performance. |
![]() |
Overengineering max(a, b) Mixed Comparison Functions, Common References & Rust Lifetime AnnotationsThe talk explores the implementation of the max(a, b) function in C++, discussing the concept of overengineering, the issues with C++'s reference handling, and how Rust's lifetime annotations could provide a cleaner solution. The speaker also delves into the complexities of generic composition and the challenges of avoiding unnecessary copies and moves in C++. |
![]() |
This is C++ - How to Use the C++ Superpower to Write Better C++ Code - Jon Kalb - C++ on Sea 2024The talk discusses how C++ is focused on uncompromised performance, achieved through the use of undefined behavior. The speaker argues that the C++ standard's approach to move semantics is a mistake, leading to potential logic errors and performance issues. |
![]() |
How Linux Elf Symbols Work and How They Are Used in C++ and C Programming - Anders Schau KnattenThis talk explores how symbols work in C and C++, including the concepts of static versus dynamic symbols, binding versus visibility, and how templates and inline variables affect symbol handling. The speaker also demonstrates how to use tools like objdump and nm to investigate symbol tables and understand the linker's role in resolving symbol references. |
![]() |
Temporal Dynamics - Exploring the Intricacies of Object Lifetimes in Modern C++ - Riya Bansal - 2024The talk explores the intricacies of object lifetimes in modern C++ by delving into the use of special member functions, the rule of six, the rule of zero, RAII, and smart pointers. The speaker also discusses the importance of move semantics, perfect forwarding, and customized destructor strategies for efficient resource management in high-performance backend systems. |
![]() |
How To Implement the C++ Standard Library - (Part 1 of 2) - Christopher Di Bella - C++ on Sea 2024The talk explores the key aspects of implementing the C++ Standard Library, focusing on achieving correctness, performance, and good diagnostics. It delves into the engineering practices, testing methodologies, and design considerations that standard library developers must navigate to deliver a robust and efficient implementation. |
![]() |
Understanding The constexpr 2-Step - Jason Turner - C++ on Sea 2024The talk explores the complexities of using constexpr in C++ to create dynamic data structures at compile-time, including techniques for safely and efficiently copying data from dynamic to static storage, and for right-sizing fixed-size containers. The speaker presents a step-by-step approach, with examples, to address common challenges and pitfalls when working with constexpr in C++. |
![]() |
How to Keep C++ Binaries Small - Techniques for C++ Optimization - Sandor Dargo - C++ on Sea 2024The talk covers techniques for reducing the binary size of C++ applications, including optimizing object initialization, managing storage duration, leveraging compiler and linker settings, and minimizing the use of virtual functions and exceptions. The speaker provides practical insights and recommendations based on their experience at Spotify, emphasizing the importance of measuring the impact of changes and finding the right balance between code optimization and maintainability. |