Patrick Quist joins Phil and Timur. Patrick chats with us about their work on the Compiler Explorer team and how they got into it. We explore some useful features that may not be as widely known, and take a peek under the hood at how it all runs. News "C++ Package Managers: The Ultimate Roundup" - blog post by Christopher McArthur "Demystifying Lakos Rule via Visualization and How It Could Relate to Constexpr" blog post by Miro Palmu "A Year of C++ Improvements in Visual Studio, VS Code, and vcpkg" - blog post by Sy Brand NVidia interview question - Reddit thread Links History of Delphi Compiler Explorer Also Compiler Explorer Compiler Explorer Public Dashboard (live stats)
Rainer Grimm joins Timur and Phil. Rainer talks to us about what he has learnt from many years of teaching C++ as a professional trainer, how training has become more accessible now more people are taking it online, and his thoughts on modern C++. News The C++ Iceberg "C++20 Concepts applied - Safe bitmasks using scoped enums" - blog post by Andreas Fertig ACCU conference: Early-bird tickets and workshops Links Reddit thread on Episode 375 with Daveed Vandervoorde Rainer's website and blog Rainer at Meeting C++ online, Feb 21st Rainer's "Concurreny in Modern C++" workshop at C++ Online, March 14th
Daveed Vandevoorde joins Phil and Timur. Daveed talks a bit about his work at EDG, but mostly his efforts to get Reflection into C++26, along with his co-authors, and how that fits into the big picture. News Meeting C++ 2023 videos (including all keynotes) "A 2024 Discussion Whether To Convert The Linux Kernel From C To Modern C++" How do you correctly implement std::clamp? Blog post Reddit discussion C++ Online Workshops Links P2996R1 - "Reflection for C++26" P1240R2 - "Scalable Reflection in C++" "C++ Templates - The Complete Guide" - book (Vandevoorde, Josuttis)
Ville Voutilainen joins Timur and guest co-host, Guy Davidson. Ville talks about his work at The Qt Company and on the C++ standard committee, and about how modern C++ features such as Modules and Sender/Receiver can integrate with the Qt framework. News Matt Godbolt on Computerphile PVS-Studio C++ quiz Boston C++ meetup C++ Now Links P2300R7 - std::execution (a.k.a. Sender/Receiver)
Phil and Timur are joined by ... Timur and Phil for a Holiday Special. We look back on the last year, discuss the news, and talk about what we're working on. News "The Case for Memory Safe Roadmaps" - CISA Experimental EDG Reflection Support Boost 1.84.0 released Cling 1.0 released "About time - how to unit test code that depends on time" - Björn Fahller CppNorth: Call for Speakers "Earlist Bird" tickets ACCU Early bird tickets C++ Online tickets Links Phil and Timur speaking at the December meetup in Munich "Digital Security by Design, CHERI and the Morello Board" - C++ London P2900R3 - "Contracts for C++"
Matthias Kretz joins Phil and Timur. Matthias talks about SIMD, including what it is, how it works, and what its useful for. We also discuss his proposal to introduce SIMD vocabulary types and functionality into the C++ standard and how it relates to what was in the Parallelism TS. News MISRA C++ 2023 published Sonar webinar on MISRA C++ 2023 with Andreas Weis nlohmann/json 3.11.3 released reflect-cpp - Reflection library for C++20 Links P1928R7 - "std::simd — merge data-parallel types from the Parallelism TS 2" Matthias' CppCon 2023 talk on std::simd
Martin Hořeňovský joins Timur and Phil. Martin returns to talk about v3 of Catch2 and how it is different to v2. We also revisit the topic of random numbers and how Martin is still working on portable distributions and why that is important to testing and other domains. News P2662R3 - "Pack Indexing" P1673R13 - "A free function linear algebra interface based on the BLAS" P2546R5 - "Debugging Support" P2996R0 - "Reflection for C++26" "Why I think C++ is still a desirable coding platform compared to Rust" - Henrique Bucher CLion Nova Links Martin's NDC TechTown 2021 talk on Catch2 v3
Mateusz Pusz joins Phil and new guest co-host, Anastasia Kazakova. Mateusz talks to us about his physical units (and quantities) library, mp-units, why v2 is a complete redesign compared to the previous version, and how incorporating a system of quantities is so central to this new design. News clang 17 released Conference videos released in October AMA with Abbas Sabra (automatic/ static analysis) Is it too hard for junior developers to get on the C++ career ladder (Reddit) Links mp-units on GitHub mp-units - Documentation C++ on Sea 2023 video The Mars Climate Orbiter crash p1935 - "A C++ Approach to Physical Units" p2980 - "A motivation, scope, and plan for a physical quantities and units library" p2981 - "Improving our safety with a physical quantities and units library" p2982 - "std::quantity as a numeric type" p3003 - "The design of a library of number concepts"
Frances Buontempo joins Phil and returning guest co-host, Matt Godbolt. Frances talks to us about her new book on modern C++ as well as her the topic of her previous book on machine learning. We discuss the differences between LLM-based AI and more statistical approaches, as well as where random numbers fit into all this and the limitations of their current support in C++. News CppCon programme announced C++ on Sea videos "Inside STL" - The Old New Thing (August archive) Open source C++ projects that use modern C++ features (Reddit) Links "C++ Bookcamp" (title may change) - Frances' new book "Genetic Algorithms and Machine Learning for Programmers" - Frances' previous book Overload issues (submit articles on the main ACCU site) Frances' paper bag escapology certificate Shannon's mind reading paper ERNIE (Electronic Random Number Indicator Equipment) P2059R0 - "Make Pseudo-random Numbers Portable" (defunct) "Using, Generating and Testing with Pseudo-Random Numbers" - Frances' ACCU 2023 talk "Program your way out of a paper bag" series: "How to program your way out of a paper bag" (slides) "How to Evolve Your Way Out of a Paper Bag" (video) "Diffuse your way out of a paper bag" (video) "How to Evolve Your Way Out of a Paper Bag" (video) "Crowd Your Way Out of a Paper Bag" (video)
Abbas Sabra joins Phil and Timur. Abbas talks to us about static analysis, the challenges - and benefits - of analysing C++ code, and a new feature from Sonar that can scan public repos with zero config. News Boost 1.83.0 released fmt 10.1 released The downsides of C++ Coroutines Links "All the defaults are backwards" - Phil's Lightning Talk "No, C++ static analysis does not have to be painful" - Sonar blog video showing Sonar's Automatic Analysis in action Sonar Community Discourse forums
Mark Gillard joins Timur and guest co-host Jason Turner. Mark talks to us about reflection, SIMD, and his library soagen, a structure-of-arrays generator for C++. News What is Low Latency C++? C++Now 2023, part 1 What is Low Latency C++? C++Now 2023, part 2 Inside STL: The vector Inside STL: The string Experimenting with Modules in Flux pycmake cpptrace Links Soagen on GitHub Soagen documentation Mike Acton: Data-Oriented Design and C++ at CppCon 2014 Bryce Adelstein Lelbach on SoA and reflection at ACCU 2023 Data-Oriented Design and Modern C++ at CppNow 2023 Godbolt's law toml++ on GitHub PVS-Studio: 60 terrible tips for a C++ developer
Dmitry Kozhevnikov joins Timur and guest co-host Matt Godbolt. Dmitry talks to us about how the CLion IDE works under the hood. News mold 2.0.0 released CLion 2023.2 released Should we stop writing functions? Links C++ Lambda Idioms: technique to separate user-specified and deduced template parameters The Kotlin Foundation JetBrains Runtime CLion data flow analysis engine PVS-Studio: 60 terrible tips for a C++ developer
Bjarne Stroustrup joins Phil and Timur. Bjarne talks to us about safety in C++ through profiles, as well as modules and concepts - and looks ahead to what else is coming next. News C++ Now 2023 videos ACCU 2023 videos JetBrains Developer Ecosystem Survey 2023 Upcoming Boost 1.83 release Links P2739R0 - 'A call to action: Think seriously about “safety"; then do something sensible about it' P2687R0 - 'Design Alternatives for Type-and-Resource Safe C++' 'Contemporary C++ in Action' (video) - Daniela Engert
Tristan Brindle joins Timur and Phil. Tristan talks to us about a safer alternative to iterators and his library, Flux, that implements it. News 60 terrible tips for a C++ developer Big, combined, committee trip report from Varna CLion 2023.2 EAP4: AI Assistant "Making C++ Memory-Safe Without Borrow Checking, Reference Counting, or Tracing Garbage Collection" Links Episode 78 of CppCast, mentioning Cling Episode of ADSP recorded at C++ on Sea Episode 152 of CppCast, with Tristan and the C++ London Uni team Flux on GitHub
Joshua Berne joins Phil and Timur. Joshua talks to us about the previous week's ISO C++ meeting in Varna, Bulgaria, then focuses on the current state of the contracts proposal that he has been central to, as well as a bit of its history. News ISO C++ trip report's from Varna: Herb Sutter's trip report Jonathan Müller's trip report GCC 14 NRVO enhancements (Reddit) P2025 proposes guaranteed NRVO How to get NRVO before C++26 XCode 15 beta Links P2831 - "Functions having a narrow contract should not be noexcept" P2521 - The current contracts MVP P2695 - "A proposed plan for Contracts in C++" P2811 - "Contract-Violation Handlers" P2834 - "Semantic Stability Across Contract-Checking Build Modes" P2877R0 - "Contract Build Modes, Semantics, and Implementation Strategies" P2751 - "Evaluation of Checked Contract-Checking Annotations" P2552 - "On the ignorability of standard attributes" p2786 - "Trivial relocatability options" P2839 - "Nontrivial Relocation via a New owning reference Type" P0843R8 - "inplace_vector"
Daniel Ruoso joins Phil and Timur. After covering a couple of blog posts and a new UI library, we welcome Daniel back to talk with us about modules, package and build systems and SG15, the tooling study group. We also revisit the Ecosystem International Standard. News Modern C++ In-Depth — Is string_view Worth It? How to check if a pointer is in a range of memory - Raymond Chen Nui - new C++ Webview UI library Nui on Reddit Timur's Undefined Behaviour survey Links P2898R0 - "Importable Headers are Not Universally Implementable" "Clang Automated Refactoring for everyone with clangmetatool" - Daniel's C++ Now 2019 talk P1689R5 - "Format for describing dependencies of source files" (Kitware)
Antony Peacock joins Timur and Phil. After rounding up the news, we chat with Antony about what it's like to work in finance as a C++ developer, the similarities and differences to games dev and how you can break in to a role in finance. We also discuss what it's like to work in tech as someone with dyslexia. News Visual Studio 17.6 released Valgrind 3.21 released Snitch 1.1 Meeting C++ Call for Speakers (until June 18) CppCon Call for Speakers (until June 25) Links P2547R1 - "Language Support for Customisable Functions" Maven on C++ "How to get into the tech industry" (Maven's blog) Interview question at Maven "C++ 20 Techniques for Algorithmic Trading" (webinar) "C++ Concepts and Fireside Chat on Algorithmic Trading" (webinar) "C++ and Python for Algorithmic Trading" (webinar) Example algo trading code from webinar series (1) Example algo trading code from webinar series (2) Antony's article on Neurodiversity and Dyslexia Diversita (UK) P0201R6 - "polymorphic_value: A Polymorphic Value Type for C++" P1950R2 - "indirect_value: A Free-Store-Allocated Value Type For C++" EVE - the Expressive Vector Engine P1385R7 - "Linear Algebra" P1935R2 - "A C++ Approach to Physical Units" mp-units - Mateusz Pusz' implementation of physical units P2547R0 - "Language support for customisable functions" "Why tag_invoke is not the solution I want" - Barry Revzin
Luis Campos joins Phil and Timur. After some compiler and language news, we chat with Luis about the recent Conan 2.0 release, the state of package management in C++, today and what's happening in the world of C++ standards that may impact it in the future. News GCC 13 released CppFront "spring update" Mojo - a new language with Python-like syntax but runs like C++ CrabLang - a fork of Rust Timur's Undefined Behaviour survey Links Conan 2.0 P2656R2 - "C++ Ecosystem International Standard" Conan on Twitter "A Lock-free Atomic shared_ptr" - Timur's C++ Now 2022 talk "Advanced Dependencies Model in Conan 2.0" - Diego's ACCU 2022 talk
Ashot Vardanian joins Timur and Phil. After some conference updates, news about the ISO C++ Developer Survey, Sonar integration in Compiler Explorer and some posts on modules and performance, we chat with Ashot Vardanian about AI and the infrastructure that underpins it. Ashot talks to us about some of the libraries and tools he and his startup have been developing over the past few years with some impressive numbers behind them. News Core C++ (Israel) - 5th-8th June Meeting C++ 2023 - 12th-14th November C++ Now 2023 - 7th-12th May C++ on Sea 2023 schedule announced - 27th-30th June CppNorth - 17th-19th July 2023 ISO C++ Developer Survey "Sonar ❤️ Compiler Explorer: Write clean C++ code inside your browser" "C++20 modules in clang" "Horrible Code, Clean Performance" Links Unum (Ash's AI research company) Unum repos on GitHub Cpp Armenia User Group
Mathew Benson joins Phil and Timur. After some news on new dev tool releases and some welcome improvements to iostreams in GCC13, we talk to Mathew Benson about what it's like to learn and use C++ in Africa and the implications for the hardware and our choices in programming language. Mathew also draws an interesting parallel to natural languages. News CLion 2023.1 released Qt Creator 10 released Buck2 released "A leaner <iostream> in libstdc++ for GCC 13" Links Timur's three-question Undefined Behaviour survey CppAfrica on Twitter CppAfrica on Discord