Steve Downey

22.8K posts

Steve Downey

Steve Downey

@sdowney

Software engineer at Bloomberg LP Views are my own he/him Parody of a real software engineer and grown up. @[email protected]

New York, NY Katılım Temmuz 2007
1.1K Takip Edilen1.1K Takipçiler
Sabitlenmiş Tweet
Steve Downey
Steve Downey@sdowney·
It's my fault you can't `throw 💩;` anymore.
English
0
1
24
0
Steve Downey retweetledi
Vittorio Romeo
Vittorio Romeo@supahvee1234·
🤔 What if writing faster C++ code actually meant writing *simpler* code? Incredibly excited to share that I'll be giving my first-ever keynote at @CppCon 2025: ➡️ “More Speed & Simplicity: Practical Data-Oriented Design in C++” cppcon.org/2025-keynote-v… #cpp #cplusplus #gamedev
English
5
6
170
8.8K
Steve Downey
Steve Downey@sdowney·
@__phantomderp Sure, but C++ still gets to check the recursive box. And if C needs to spell the type _SelfFunctionPointer and it only works for non-captures, that's a C problem?
English
0
0
0
34
Björkus 'No time_t to Die' Dorkus
Alright. Finished the introduction / motivation section and have a clear path. Let's get to work.
Björkus 'No time_t to Die' Dorkus tweet media
English
4
0
31
1.3K
Steve Downey
Steve Downey@sdowney·
@__phantomderp Parallel, these days, is usually the same operation at the same time, where concurrency is different operations all making progress at the same time. With "same time" being very underspecified. Threads are a different axis and may or may not be involved with either.
English
0
0
3
65
Björkus 'No time_t to Die' Dorkus
I always forget whether it should be "these are never invoked in parallel" or "these are never invoked concurrently". I think the proper terminology for "not at the exact same wall-clock physical time" is "these are not invoked in parallel"....
English
4
1
30
1.7K
Steve Downey retweetledi
Barry Revzin
Barry Revzin@BarryRevzin·
C++26 is going to have Reflection! I am very excited about that fact, so I wrote a new #cpp post with a very cool example. We're taking a JSON string and turning it directly into a C++ object: brevzin.github.io/c++/2025/06/26…
Barry Revzin tweet media
English
4
46
206
14.4K
Steve Downey
Steve Downey@sdowney·
@Nekrolm @__phantomderp Which one do you mean? It's only a pointer, and there isn't an extra bool, if that's the one. It might be possible to be technically conforming to have a bool, but no one hates their customers that much.
English
1
0
1
29
Björkus 'No time_t to Die' Dorkus
Thanks to Steve Downey and others, optional<T&> officially adopted into C++26. It would've been great during C++17, but the uphill battle had to be fought first. But, hey. The first best time was 9 years ago, the second best time is now.
English
12
32
296
15.7K
Steve Downey
Steve Downey@sdowney·
@_mort96_ @__phantomderp It was never a Container, which means a bunch of requirements in the library, but we did make it a range, and a view, for C++26. `for (auto t&& : opt_T) {...} ` works Many people hate that syntax, though, because iteration of 0 or 1 bothers them.
English
0
0
2
63
Steve Downey
Steve Downey@sdowney·
@__phantomderp The really important thing, and why I worked on it, is this is also the semantics for variant over references. variant<T...>& ought to be the iterator for tuple<T...> but tuple can hold things that variant can't. Optional is a more efficient variant<T, monostate>.
English
0
0
3
241
Björkus 'No time_t to Die' Dorkus
I need to get my hands on a build of reflection for C++ so I can finally evaluate it with a real code base.
English
2
0
30
1.2K
Björkus 'No time_t to Die' Dorkus
It's finally done. I've drawn blood from the win32 stone. I just need to write and document all of this, so nobody ever has to do it again.
English
3
0
90
2.1K
Steve Downey
Steve Downey@sdowney·
@FleetingShadow @__phantomderp Together with reflection and consteval you can write a parser for other programming languages and compile them into C++. At least in theory.
English
0
0
0
20
Simon Cooke
Simon Cooke@FleetingShadow·
@__phantomderp *applause* This was a bigger hole than people think. Fixing it makes writing all kinds of table-based code a LOT easier.
English
1
0
6
342
Steve Downey retweetledi
Björkus 'No time_t to Die' Dorkus
Björkus 'No time_t to Die' Dorkus@__phantomderp·
Preprocessor embed is in C++26. You can go bother your vendors to put it in. The offset parameter may make it through as well, meaning it will go in fully complete and not need a second standards revision to patch the offset(3) parameter in. It's finally, truly, over.
English
12
13
241
11.2K
Björkus 'No time_t to Die' Dorkus
I gotta see so many posts saying "Rust is slower" and like I think these people just evaluate languages and designs based on vibes and not based on like the material output from the compilers.
English
5
6
158
4.8K
Steve Downey
Steve Downey@sdowney·
@headinthebox OO is great because the real world is filled with objects, not values. OO is awful because state and behavior are intractable problems.
English
1
0
2
133
Björkus 'No time_t to Die' Dorkus
More seriously: defer is an improvement, but Lina is right: it's not systemic. defer is good for one-offs, but still requires you to Always Do It Correctly. You can paste this over with macros that always pair the creation with the defer setup, but... alas.
English
5
1
167
3.2K
Steve Downey
Steve Downey@sdowney·
@blelbach @jfbastien I've had the pleasure of programming 28xx DSPs that have a 16bit byte. For fun. It did use a sensible representation, though.
English
1
0
0
216
Steve Downey
Steve Downey@sdowney·
X - Smoke and Fiction
Steve Downey tweet media
English
0
0
0
163
Steve Downey
Steve Downey@sdowney·
@hankadusikova Graph tagging in expression evaluation. Basically the same thing as Mark/sweep GC, but for reduction in expression trees, distinguishing reduced value and unreduced expression.
English
0
0
1
204