Jason Turner
where else to find them
website:http://articles.emptycrate.com
github:lefticus
bluesky:lefticus.bsky.social
mastodon:@lefticus@mas.to
x:lefticus
linkedin:lefticus
youtube:@cppweekly
what they talk about
all 14 in the filters
where they keep going back
- CppCon9 editions2015–2024
- NDC TechTown5 editions2019–2025
- C++ on Sea3 editions2022–2025
all 8 in the filters
on a stage with
- Ben Deaneonce
- Robert Irvingonce
who talks about the same things
- Roth Michaels14 talks
- Andreas Fertig23 talks
- Vittorio Romeo27 talks
- Ben Deane32 talks
- Kate Gregory27 talks
- Jonathan Müller37 talks
| title | conference | date |
|---|---|---|
| Responsibly Abandoning Open Source Projects | NDC Copenhagen 2026 | 2026-06-01 |
Project reaches a real finish when it has automated CI that runs static analysis (Clang‑Tidy, RUFF, Clippy), unit and integration tests, runtime sanitizers… | ||
| Expression-based Programming for Better Code? | NDC Toronto 2026 | 2026-05-05 |
Claim: treating statements like expressions and moving each control block into its own function yields smaller, clearer C++ code that leverages RVO/NRVO, tail… | ||
| Implicit Conversions Considered Harmful | NDC TechTown 2025 | 2025-09-22 |
Implicit conversions create surprising behavior and hidden costs: converting string literals to std::string makes temporaries and extra copies, pair-to-pair… | ||
| The Power and Pain of Hidden Symbols in C++ Programming | C++ on Sea 2025 | 2025-06-23 |
Claim: making symbols -fvisibility=hidden by default and exporting only the intended API, then enabling link-time optimization, shrinks and speeds real C++… | ||
| consteval All The Things? | ACCU 2025 | 2025-04-01 |
Consteval is a C++20 tool that forces compile-time evaluation but also requires arguments to be constant expressions, so ordinary function parameters are never… | ||
| Secrets of C++ Scripting Bindings: Bridging Compile Time and Run Time | CppCon 2024 | 2024-09-15 |
Starts from first principles and actually builds a tiny scripting engine (complete, runnable 96-line engine) that registers C++ functions via template… | ||
| How To Use `constexpr` In C++23 | NDC TechTown 2024 | 2024-09-09 |
C++23 widens what can run at compile time and the rules matter: you cannot deallocate memory not allocated during constant evaluation, use reinterpret_cast, or… | ||
| Understanding The constexpr 2-Step | C++ on Sea 2024 | 2024-07-02 |
Explains the constexpr two-step: generate dynamic data at compile time with constexpr new/delete, copy it into an oversized stack-style array, then create a… | ||
| OLD VERSION: Understanding The constexpr 2-Step | C++ on Sea 2024 | 2024-07-02 |
C++20 makes std::vector and std::string usable in constant expressions yet direct constexpr heap allocation fails because memory allocated at compile time must… | ||
| Workshop Interview - Understanding Object Lifetime For Efficient and Safer C++ | C++ on Sea 2024 | 2024-07-02 |
Hands‑on workshop that teaches the concrete rules and gotchas that change code size, safety, and speed: exact object lifetime semantics, when an rvalue… | ||
| Great C++ is_trivial: trivial type traits | CppCon 2023 | 2023-10-02 |
Claim: knowing the exact is_trivially_destructible and trivially copyable rules makes performance questions about moves and copies moot. Shows concrete… | ||
| Why Data Access Patterns Have Always Mattered | NDC TechTown 2023 | 2023-09-18 |
Argues that memory layout and access order still drive performance, backing it with a 6502 assembly comparison where a linked list costs 49–64 cycles vs 43–57… | ||
| Back to Basics: C++ API Design | CppCon 2022 | 2022-09-11 |
Argues for concrete rules: mark getters no discard, mark non‑throwing functions no accept, prefer returning unique_ptr or an expected‑style type over raw… | ||
| The Power Of Compile-Time Resources | CppNorth 2022 | 2022-07-18 |
A tool converts a known JSON schema into generated C++ files (document.hpp, document_impul.hpp, document.cpp) that emit inline constexpr objects so the schema… | ||
| The Best Parts of C++ | CppNorth 2022 | 2022-07-18 |
C++ evolves by adding concrete tools that reduce bugs and boilerplate: RAII/unique_ptr eliminates leaks, const and deterministic destruction tighten… | ||
| Making C++ Fun, Safe, and Accessible | C++ on Sea 2022 | 2022-07-05 |
Claims that C++ can be fun, safe, and accessible backed by concrete artifacts: puzzle books that teach object lifetime and copy/reference semantics, 331 weekly… | ||
| Your New Mental Model of constexpr | CppCon 2021 | 2021-10-24 |
Claim: constexpr is best viewed as moving work from runtime to compile time along a constexpr continuum (0–100%). Tools and standards: C++20 features, CTRE… | ||
| Garbage In, Pearls Out? | NDC TechTown 2021 | 2021-08-30 |
Builds a working IR pass through for a distributed audio system that turns noisy, low‑quality remote captures into reliable commands by detecting leader… | ||
| Great C++ is_trivial | CppCon 2019 | 2019-09-15 |
Defines exactly which type traits let the compiler elide work and shows concrete assembly and compiler behaviors: ints and trivial aggregates compile to… | ||
| The Best Parts of C++ | CppCon 2019 | 2019-09-15 |
Survey of roughly 25 major features across C++98–C++20 shows concrete wins: make_unique (C++14) fixes common allocation idioms, guaranteed copy elision (C++17)… | ||
| C++ Code Smells | CppCon 2019 | 2019-09-15 |
Argues that hundreds of C++ best-practice rules collapse into a handful of actionable smells: missing const, ignored compiler warnings, and heavy use of moves… | ||
| C++ Code Smells | NDC TechTown 2019 | 2019-09-02 |
Counts about 748 best-practice rules but narrows to concrete smells and fixes: construction vs assignment leads to needless temporaries but modern GCC9 often… | ||
| Surprises in Object Lifetime | CppCon 2018 | 2018-09-23 |
Concrete surprises: implicit wrappers like reference_wrapper and string_view produce dangling references with no compiler warnings, returning or binding to… | ||
| Applied Best Practices | CppCon 2018 | 2018-09-23 |
Builds a constexpr ARM emulator plus GUI, ELF parser and tiny linker that actually compiles and steps code at compile time so unit tests that compile are… | ||
| Practical C++17 | Meeting C++ 2017 | 2017-11-09 |
Applying C++17 to a 25k LOC project shows concrete wins and pitfalls: ChaiScript (25k LOC) used as the testbed reveals noexcept in the type system gives ~1%… | ||
| Practical constexpr | Meeting C++ 2017 | 2017-11-09 |
Applies constexpr across a 25k line ChaiScript codebase and reports concrete effects: many indiscriminate changes show 0% change while a few targeted… | ||
| “constexpr ALL the Things!” | CppCon 2017 | 2017-09-24 |
Builds a real constexpr JSON parser and even a constexpr regex engine using constexpr lambdas and a user-defined literal template (GCC/Clang extension)… | ||
| “Practical C++17” | CppCon 2017 | 2017-09-24 |
Porting a 25k-line header-only project, ChaiScript, to C++17 yields concrete wins and traps: class template deduction guides collapse dozens of overloads and… | ||
| “Rich Code for Tiny Computers: A Simple Commodore 64 Game in C++17” | CppCon 2016 | 2016-09-18 |
Uses C++17 and Compiler Explorer to compile idiomatic C++ into 386 assembly then translate that into 6510/6502 code with an x86-to-6502 reassembler, building a… | ||
| “Practical Performance Practices" | CppCon 2016 | 2016-09-18 |
ChaiScript becomes roughly 100x faster over six years by simplifying idiomatic C++ rather than adding a VM or JIT, with concrete wins: caching parsed integers… | ||
| What We've Learned From the C++ Community | CppCon 2016 | 2016-09-18 |
CppCast documents 70 interviews across 1.5 years and surfaces concrete takeaways: reverse debugging (rr, Undo) lets developers step backward to find a crash… | ||
| “The Current State of (free) Static Analysis" | CppCon 2015 | 2015-09-21 |
Survey of free tools (Cppcheck, Clang static analyzer, Visual Studio analyzer, Coverity Scan, Metrics++, copy‑paste detector) compares real failures: several… | ||
| nothing matches | ||