Patrick Roberts

Patrick Roberts, PE, is a systems engineer and library developer currently working in the autonomous trucking industry, where he applies modern C++ to safety-critical, real-time vehicle software. His career spans multiple performance-critical roles, from writing firmware and low-latency trading systems to developing open-source device kernels for RISC-V AI accelerators. Patrick is a co-author of the any_view proposal (P3411), a member of the ISO C++ Standards Committee, and a core member of the Beman Project.

Sessions

  • When Abstractions Fix Too Much

    Intermediate
    Advanced
    API Design

    Many C++ library implementations of abstractions use fixed strategies for mechanisms like storage and dispatch. These choices, though suitable for general-purpose use, limit flexibility because they aren't exposed as policies that can be adapted to specific needs. In performance-critical contexts, modifying the strategy for these mechanisms requires re-implementing the entire abstraction, even though the change is often conceptually narrow. By testing a policy-based library design approach on examples like std::vector and std::ranges::any_view, this talk demonstrates how the C++ type system and template metaprogramming facilities can enable mechanisms and even interfaces to be interchangeable, which, in turn, allows the rest of […]

  • A View for Any Occasion

    Intermediate
    Advanced
    API Design

    In this talk, we will introduce a reference implementation for a proposed addition to the C++ standard library: std::ranges::any_view. This new type provides a flexible, generalized, type-erased view that can wrap any viewable range object. The any_view abstracts away the specific concrete type of the underlying container, allowing developers to define appropriate API boundaries for range adaptor pipelines. We will explore a design and implementation of std::ranges::any_view added to the Beman project, demonstrate its usage with real-world examples, and discuss how it fits into the broader context of C++'s evolving ranges library. Attendees will learn how this feature can enhance […]