Nicolai M. Josuttis
where else to find them
github:josuttis
what they talk about
all 9 in the filters
where they keep going back
- Meeting C++8 editions2018–2025
- ACCU6 editions2018–2025
- CppCon5 editions2020–2024
all 8 in the filters
on a stage with
- Kate Gregoryonce
- Kevlin Henneyonce
- Vittorio Romeoonce
who talks about the same things
- Amir Kirsh27 talks
- Andreas Fertig23 talks
- Mike Shah21 talks
- Klaus Iglberger36 talks
- Vittorio Romeo27 talks
- Rainer Grimm26 talks
| title | conference | date |
|---|---|---|
| Taming C++23 - The Things About C++23 You Do Not Know | ACCU on Sea 2026 | 2026-06-17 |
C++23 details: MDspan in GCC16 brings multidimensional spans with variadic subscript and stride/column/left layouts; std::print and std::generator land… | ||
| C++23: using std::generator in practice | Meeting C++ 2025 | 2025-11-06 |
Explains that C++23 adds std::generator as the first standard coroutine interface, shows live code (generator-as-a-view, begin/++/ semantics), and builds… | ||
| Rethink Polymorphism in C++ | C++ on Sea 2025 | 2025-06-23 |
Argues that runtime inheritance plus heap pointers is error-prone and slow, and demonstrates alternatives using std::variant, variadic templates and move… | ||
| How Old Am I in Seconds? Insights From the C++ chrono Library | ACCU 2025 | 2025-04-01 |
C++ chrono pairs C++11 durations/time_points with C++20 calendars, formatting and time zones to handle real cases: compile‑time unit selection to avoid… | ||
| What Is "Hello" in C++? | ACCU 2025 | 2025-04-01 |
Shows that the literal "hello" has type const char[6] and a surprising value category: it behaves as an lvalue even though it often decays to const char* with… | ||
| C++ Concepts | Meeting C++ 2024 | 2024-11-14 |
C++20 Concepts let generic code state actual constraints so overload resolution and diagnostics improve: use requires clause and named concepts to pick… | ||
| Back to Basics: Concepts in C++ | CppCon 2024 | 2024-09-15 |
Explains how C++20 concepts name concrete requirements and use requires clauses to fix real problems — e.g. two add overloads resolved by a has_push_back… | ||
| Taming the Filter View in C++ Programming | CppCon 2024 | 2024-09-15 |
Filter view behaves oddly in practice: begin can be linear and reverse can make iteration quadratic, transform-before-filter can re-evaluate values, caching… | ||
| C++ Workshop and Talk Preview With Nicolai Josuttis for C++OnSea 2024 | C++ on Sea 2024 | 2024-07-02 |
Two-day workshop: systematic walkthrough of C++20 concepts (how they constrain generics and dramatically improve error messages), ranges, views and their… | ||
| Understanding the Filter View to Use It Right | ACCU 2024 | 2024-04-17 |
C++20 filter_view caches the first matching iterator so initial begin can be amortized constant but later calls become cheap, which creates hidden state… | ||
| Using the filter view in practice | Meeting C++ 2023 | 2023-11-12 |
The C++20 filter view works by wrapping a range and evaluating the predicate on iteration so the very first call to begin can be linear and implementations… | ||
| Back to Basics: Iterators in C++ | CppCon 2023 | 2023-10-02 |
Covers concrete iterator design decisions: iterator categories (input, forward, bidirectional, random‑access, continuous), why algorithms like sort require… | ||
| C++ Standard Views | ACCU 2023 | 2023-04-19 |
C++20/23 ranges views come with concrete pitfalls: some views cache begin which makes repeat iteration cheap but causes surprising const and lifetime errors… | ||
| C++ And Beyond: Discussion | ACCU 2023 | 2023-04-19 |
Greatest obstacle is C++'s accumulated backward compatibility: concrete proposals use modules and epoch/dialect techniques to let new syntax map to the same… | ||
| Belle Views on C++ Ranges, their Details and the Devil | Meeting C++ 2022 | 2022-11-17 |
Claims that C++20 ranges shipped with dangerous specifics: const propagation often fails for views, cached begin computation makes behavior depend on timing… | ||
| Universal/Forwarding References | Meeting C++ 2022 | 2022-11-17 |
Concrete rules and gotchas about T&&, auto&& and std::forward determine whether code moves, copies or fails to compile: template-parameter rvalue references… | ||
| Back to Basics: Templates in C++ | CppCon 2022 | 2022-09-11 |
Covers concrete, up-to-date rules and examples: function and class templates, return-type deduction for mixed-type my_max, class template argument deduction… | ||
| C++20 - My Favourite Code Examples | NDC TechTown 2022 | 2022-08-29 |
C++20 examples show concrete code: generic add() overloads resolved with concepts + constraints instead of SFINAE, ranges and views used to pipe, take, drop… | ||
| Universal/Forwarding References - A Key to More Modern C++ | C++ on Sea 2022 | 2022-07-05 |
Universal (template T&&) references enable one-template-parameter perfect forwarding via std::forward and reference-collapsing rules, and C++20 makes them… | ||
| C++20 – My Favourite Code Examples | ACCU 2022 | 2022-04-06 |
Walks through concrete C++20 code: replaces template overloads with concepts solve overload ambiguity using requires expressions; uses ranges and views are… | ||
| C++20 - My Favorite Code Examples | Meeting C++ 2021 | 2021-11-10 |
Presents concrete C++20 code combining features and shows what actually works: spaceship operator for automatic comparisons, ranges views (drop, filter) and… | ||
| Back to Basics: Move Semantics | CppCon 2021 | 2021-10-24 |
Shows concrete code and rules: a vector<string> example demonstrates that replacing copying with move constructors cuts heap allocations and is noticeably… | ||
| Back to Basics: Lambdas | CppCon 2021 | 2021-10-24 |
Shows exactly what lambdas do and how they differ from functions: the compiler generates a closure type with an operator() and captures become members; lambdas… | ||
| C++20 - My Favourite Code Examples | C++ on Sea 2021 | 2021-06-30 |
Shows concrete C++20 recipes: using concepts with requires expressions to select overloads and use compile-time if to choose push_back vs insert; real examples… | ||
| std::jthread - I Told You Concurrency Is Tricky | ACCU 2021 Online | 2021-03-10 |
C++ gains a practical thread type that auto-joins on destruction and adds cooperative cancellation: the team implements std::jthread with a paired… | ||
| Let's Move | Meeting C++ 2020 | 2020-11-12 |
Implements a small email class, fills a vector with 100000 addresses and measures: initialization ~220 ms, sort ~4–5 s. Shows concrete optimizations: take… | ||
| The Hidden Secrets of Move Semantics | CppCon 2020 | 2020-09-14 |
Shows concrete code and measurements: copying vs moving strings with addresses printed, examples proving const disables move, and a container implementation… | ||
| Combining C++17 Features | Meeting C++ 2019 | 2019-11-14 |
Concrete examples show how if constexpr and the new if with initialization let templates pick different instantiations without SFINAE hacks, how class template… | ||
| Combining C++17 Features | NDC TechTown 2019 | 2019-09-02 |
Shows concrete C++17 recipes: use compile-time if plus if-with-init and scope_lock to lock zero or many mutexes without deadlock; use class template argument… | ||
| C++ Smart Pointers - Usage and Secrets | NDC TechTown 2019 | 2019-09-02 |
Compares shared_ptr and unique_ptr with concrete tradeoffs: make_shared saves one allocation and is usually faster but can keep the combined control block… | ||
| 50 shades of C++ | Meeting C++ 2018 | 2018-11-15 |
Explains concrete fixes and surprising gotchas: prefer brace initialization by default and avoid parentheses or equals signs; use pass-by-value-and-move for… | ||
| C++17 in Practice - The good and the ugly | NDC TechTown 2018 | 2018-09-27 |
C++17 is practical on VC++, gcc and clang but contains surprising pitfalls and fixes: class template argument deduction removes many explicit template args but… | ||
| The Nightmare of Move Semantics for Trivial C++ Classes | NDC TechTown 2018 | 2018-09-27 |
Examines a trivial class with multiple std::string members and measures how common constructor patterns produce surprising extra allocations and copies… | ||
| C++17 - The Best Features | ACCU 2018 | 2018-04-11 |
C++17 adds concrete tools and examples: inline variables let header-only globals share one counter so a header-only new tracker works without extra CPP files… | ||
| C++ Templates Revised | ACCU 2018 | 2018-04-11 |
Second edition updates cover 14 years and three major C++ versions and show concrete changes: use of auto return deduction and when it hides lifetime bugs… | ||
| C++17, part 1: The Language Features | NDC Oslo 2017 | 2017-06-14 |
Concrete list of C++17 changes and practical effects: structural bindings for decomposing pairs/tuples/arrays, if/switch with initializers, mandatory RVO so… | ||
| C++17 part 2: The Library Features | NDC Oslo 2017 | 2017-06-14 |
C++17 delivers concrete library additions: string_view semantics (non-owning, beware null terminators), new value wrappers optional, variant, any (variant… | ||
| C++17: The Language Features | NDC London 2017 | 2017-01-16 |
C++17 collects concrete changes: structured bindings let functions, pairs and arrays unpack into named variables; if and switch gain an init-statement for… | ||
| C++17: The Library Features | NDC London 2017 | 2017-01-16 |
C++17 adds concrete, usable library features: a non-owning string_view lifetime issues with a literal suffix sv and matching hash to std::string; value… | ||
| nothing matches | ||