Sign in

Eric Niebler

@ericniebler.com
1.2K followers 85 following 246 posts

Distinguished C++ nerd at @nvidia, father, @isocpp member, former nomad, and sometimes artist wannabe. opinions are my own he/him

PostsRepliesMedia
Eric Niebler @ericniebler.com · 29/08/2026
This month, the NWCPP talk was about CUDA Tile C++, something I worked on, and next month it's about std::execution -- the C++26 async model -- another thing I worked on! Quite a lot, actually. I'm planning to be there. Come say hi. nwcpp.org/Sept-2026.html #cpp
nwcpp.org
Sept 17, 2026: The Async Model is Here. Bring Your Own I/O (for now) — std::execution in C++26
061
Eric Niebler @ericniebler.com · 23/08/2026
Portable-ish code for getting the pretty name of a type godbolt.org/z/Y5zqxbvP1 #cpp
Screenshot of C++ code with a compile-time assertion that nameof<int> == "int"
040
Eric Niebler @ericniebler.com · 23/08/2026
I finally got `import std` to work on @compiler-explorer.com godbolt.org/z/3P5b11f5M #cpp
screenshot of Compiler Explorer compiling a C++ program that does `import std`
1162
Eric Niebler @ericniebler.com · 21/08/2026
Does anybody know if there is a conforming implementation of C++26's std::polymorphic that stores small object in situ? I'm trying to avoid writing one. #cpp
114
Eric Niebler @ericniebler.com · 19/05/2026
stdexec has real docs now! nvidia.github.io/stdexec/inde... i was able to leverage the work i did to specify std::execution for c++26 by pointing Claude at eel.is/c++draft/exec. yay! #cpp
nvidia.github.io
Welcome to stdexec — stdexec dev documentation
181
Eric Niebler @ericniebler.com · 14/05/2026
He's got my vote, whenever he runs
021
Eric Niebler @ericniebler.com · 27/04/2026
Have web services become less reliable since we got AI coding assistants? Is it just me?
262
Eric Niebler @ericniebler.com · 27/04/2026
In C++, customization point objects like `std::ranges::begin` have been a thing for a while now. I'm a little surprised compiler diagnostics haven't adapted. CPOs are essentially functions. Shouldn't diagnostics refer to them as functions instead of as objects?
001
Eric Niebler @ericniebler.com · 17/03/2026
About half of my time developing stdexec is spent working around MSVC conformance and codegen issues. Another ~25% is spent doing the same for EDG-based compilers.
media.tenor.com
a cartoon character is covering his eyes with his hands .
Alt: Stitch, from the animated Lilo and Stitch movie, claws their eyes in abject frustration.
030
Eric Niebler @ericniebler.com · 20/02/2026
Refreshing your .clang-format feels a bit like rearranging the furniture in your living room. It's the same old stuff in the same old room, but somehow it feels new.
230
Eric Niebler @ericniebler.com · 30/01/2026
THIS
1102
Eric Niebler @ericniebler.com · 09/01/2026
I have my own version of std::conditional_t, implemented to instantiate fewer class templates (attached). The weird thing is, I have encountered scenarios where my conditional_t picks the wrong branch, whereas std::conditional_t picks the right one. This baffles me. Am I crazy?
An implementation of std::conditional_t that only instantiates two class templates.
231
Reposted by Eric Niebler
Jason Turner @lefticus.bsky.social · 12/12/2025
I've built a text adventure game engine on top of the C++ Standard. Why? I have no idea. But it's a learning tool with quests and time travel and artifacts and NPC's and XP and ... well, you just have to check it out! cppevo.dev/adventure
cppevo.dev
C++ Standard Adventure - cppevo
Explore the C++ standard as an interactive text adventure game. Navigate between C++ eras, collect knowledge, and learn the language.
34514
Eric Niebler @ericniebler.com · 28/12/2025
I've put this little type-erasure library on github for safe-keeping. github.com/ericniebler/...
github.com
GitHub - ericniebler/any: a library for building type-erasing wrappers
a library for building type-erasing wrappers. Contribute to ericniebler/any development by creating an account on GitHub.
092
Eric Niebler @ericniebler.com · 24/12/2025
No Advent of Code for me. Instead, I've used the break to write the type-erasure library I have always wanted. C++ doesn't make it easy to have both dynamic polymorphism *and* value semantics, but this little utility does! Interfaces can extend other interfaces, and it works in consteval, too. 🤩
a screenshot of an editor showing a snippet of code that defines an interface, and a type that models the interface non-intrusively, and a type named `any` that is parameterized on the interface and that stores the model while erasing its type.
4196
Eric Niebler @ericniebler.com · 12/09/2025
is there really no way to get a void* to the object stored in a std::any? i wants it. #cpp
030
Eric Niebler @ericniebler.com · 05/09/2025
i despise the word "agentic".
050
Eric Niebler @ericniebler.com · 29/08/2025
I've started using digit separators when checking the value of __cplusplus and feature test macros, and i am liking it. 2019'02 is less work for my old brain.
screenshot of c++ source code
2192
Reposted by Eric Niebler
Meeting C++ @meetingcpp.bsky.social · 12/08/2025
What’s New and Important in CUDA Toolkit 13.0 developer.nvidia.com/blog/whats-n... #cpp #cplusplus
developer.nvidia.com
What’s New and Important in CUDA Toolkit 13.0 | NVIDIA Technical Blog
The newest update to the CUDA Toolkit, version 13.0, features advancements to accelerate computing on the latest NVIDIA CPUs and GPUs. As a major release, it lays the foundation for all future…
023
Eric Niebler @ericniebler.com · 08/06/2025
@jfbastien.com have you already lined up your next gig or are you looking?
120
Reposted by Eric Niebler
Mike Turitzin @miketuritzin.bsky.social · 26/05/2025
Really great talk covering GPU perf stuff including optimizing for memory bandwidth / cache and occupancy. Relevant to any GPU perf considerations, not specific to CUDA. www.youtube.com/watch?v=QQce...
youtube.com
GTC 2022 - How CUDA Programming Works - Stephen Jones, CUDA Architect, NVIDIA
YouTube video by Coding In Rust
0205
Reposted by Eric Niebler
Nevin Liber @nliber.bsky.social · 20/05/2025
The WG21 C++ 2025 pre-Sofia mailing is now available at www.open-std.org/jtc1/sc22/wg.... There are less than 100 papers so I'm sure you can have them all read by tonight. :-)
open-std.org
ISO/IEC JTC1/SC22/WG21 - Papers 2025
1112
Eric Niebler @ericniebler.com · 10/05/2025
UPDATE: stdexec gets native support for ASIO! HUGE community contribution from github user @RobertLeahy, an expert in both ASIO and std::execution. With the new `use_sender` completion token, ASIO's async APIs return senders. Now you can program generically with async network operations! 🎉
0143
Eric Niebler @ericniebler.com · 25/04/2025
is there a good tool, possibly a vscode extension, for splitting git commits? i have a workflow in mind: define some empty "commits" and then graphically drag chunks into each one. 1/
110
Eric Niebler @ericniebler.com · 16/04/2025
if void pointers make sense, and references make sense, then void references make sense. why u no void& ?
110
Eric Niebler @ericniebler.com · 14/04/2025
i want to import std::move(obj) into a namespace but *not* std::move(iter, iter, out), and C++ will. Not. Let. Me.
media.tenor.com
a cartoon character is covering his eyes with his hands .
Alt: Stitch clawing at their eyelids from frustration.
020
Eric Niebler @ericniebler.com · 08/04/2025
cyberpunk had it wrong. it needed to be way darker and FAR more stupid.
060
Eric Niebler @ericniebler.com · 05/04/2025
I take comfort from knowing that he's fucking things up so badly that things are unlikely to continue this way for very long. 'Cause now he's hurting rich people. And rich people are pain averse.
160
Eric Niebler @ericniebler.com · 04/04/2025
At first I thought this was a shot in the spaces-vs-tabs war and was like WHOA vertical tab characters MAJOR escalation.
180
Eric Niebler @ericniebler.com · 28/03/2025
Seattle is upping its crime game. 🫠
Headline: Report of Man With Bazooka in downtown Seattle
000
Eric Niebler @ericniebler.com · 27/03/2025
i am constantly looking up: * the C++ feature test macros * the printf format specifiers * the Doxygen special commands i've been doing this for 30+ years. i should just make posters and hang them above my desk already.
2130
Eric Niebler @ericniebler.com · 08/03/2025
Have a happy C++!
two heavy plus signs over a U looks like a smiling emoticon, but rotated 90 degrees clockwise looks like C++
0213
Eric Niebler @ericniebler.com · 07/03/2025
In the book Swan Song, the Devil strolls into a movie theater chuckling to himself while WWIII is bringing a rapid end to human civilization. He's laughing because he didn't have to do anything. The humans are blowing themselves up. I think about that a lot.
050
Eric Niebler @ericniebler.com · 06/03/2025
Boy that sends me back
Headline: Dysentery Outbreak in Oregon Sickens 40
030
Eric Niebler @ericniebler.com · 24/02/2025
C++ wizards: this one has me stumped. I can initialize an immovable sub-object if it is a member but not if it is a base class. Why? godbolt.org/z/P7jxr5joK #c++ #cpp
450
Eric Niebler @ericniebler.com · 16/02/2025
I miss ThinkGeek. Where do I go to buy desktop refrigerators and TaunTaun sleeping bags now?
ThinkGeek monkey logo
050
Eric Niebler @ericniebler.com · 07/02/2025
Worried about the price of eggs? Get some hens. 🐔 Srsly.
Eggs over easy on English muffin. Egg yolks are a deep orangy yellow.
010
Eric Niebler @ericniebler.com · 04/02/2025
I don't see many appeals to Godwin's Law these days. en.wikipedia.org/wiki/Godwin%...
060
Eric Niebler @ericniebler.com · 04/02/2025
is it gauche to star your own github repo? asking for a friend.
media.tenor.com
a man in a black shirt is waving his hand in front of a blue background with the words `` go me '' written on it .
Alt: a man in a black shirt is waving his hand in front of a blue background with the words `` go me '' written on it .
040
Eric Niebler @ericniebler.com · 03/02/2025
In the world of Functional Programming, is there a term for a type transformation like: F [a,b,c] -> [F a, F b, F c] Is this some sort of monadic something-or-other?
671
Eric Niebler @ericniebler.com · 03/02/2025
Seattle's master criminals have struck again
Headline: "Two Donkeys Named Juan and Julio Stolen"
000
Eric Niebler @ericniebler.com · 02/02/2025
Use [[no_unique_address]] to determine if a set of types are unique in O(N). godbolt.org/z/dTcGhqseo
a screenshot of some syntax-highlighted C++ code showing how the [[no_unique_address]] attribute can be used to determine if a set of types are unique.
370
Eric Niebler @ericniebler.com · 25/01/2025
Regular Expression Matching Can Be Simple And Fast by Russ Cox swtch.com/~rsc/regexp/...
swtch.com
Regular Expression Matching Can Be Simple And Fast
2113
Eric Niebler @ericniebler.com · 10/01/2025
I'm embarrassingly excited about what constexpr exceptions can do to improve the compile-time diagnostics of Senders.
Introduction
The hardest part of writing a sender algorithm is often the computation of its completion signatures, an intricate meta-programming task. Using sender algorithms incorrectly leads to large, incomprehensible errors deep within the completion-signatures meta-program. What is needed is a way to propagate type errors automatically to the API boundary where they can be reported concisely, much the way exceptions do for runtime errors.

Support for exceptions during constant-evaluation was recently accepted into the Working Draft for C++26. We can take advantage of this powerful new feature to easily propagate type errors during the computation of a sender’s completion signatures. This significantly improves the diagnostics users are likely to encounter while also simplifying the job of writing new sender algorithms.
3223
Eric Niebler @ericniebler.com · 07/01/2025
Huh
Snap dialog that reads: Visual Studio Code will quit and update in -1064531426 minutes.
480
Reposted by Eric Niebler
emptywheel @emptywheel.bsky.social · 04/01/2025
Posting this story about how Ann Telnaes got censored not least bc it'll disseminate the image Jeff Bezos censored. anntelnaes.substack.com/p/why-im-qui...
anntelnaes.substack.com
Why I'm quitting the Washington Post
Democracy can't function without a free press
187118303701
Eric Niebler @ericniebler.com · 19/12/2024
is there any way at all to suppress this warning on gcc-10? godbolt.org/z/c1Tsd4Pvs and if you are about to reply "why are you writing code like that?" just stop right there. i have reasons.
350
Eric Niebler @ericniebler.com · 12/12/2024
It was a major leap in my understanding of neurodiversity when I realized Maria is textbook ADHD. And she's awesome.
0102
Eric Niebler @ericniebler.com · 04/12/2024
Go to Seattle. Do crimes.
Home intruder stole remote, dropped it before fleeing.
020
Eric Niebler @ericniebler.com · 30/11/2024
Just when you think you understand C++ templates... I'm a little surprised that I can't SFINAE on the evil "pack expansion into non-pack parameter" error. Is there a way to change the implementation of `call` or `callable` to get the following code to compile? godbolt.org/z/Pj9G11sr3
a screenshot of some C++ code trying to detect whether a meta-callable is callable with a set of arguments.
480