Eric Niebler

@ericniebler.com

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

Are there any range-v3 users out there? Does anybody care to become a maintainer? The project mostly needs someone to review and merge pull requests and occasionally deal with bitrot in the github actions CI jobs. Inglorious, to be sure. But a nice thing to put on your job resume.

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?

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.

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.

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.

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

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! 🎉

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/

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.