Jonathan Müller
banner
foonathan.fosstodon.org.ap.brid.gy
Jonathan Müller
@foonathan.fosstodon.org.ap.brid.gy
C++, compilers, and programming languages. Library developer @ think-cell, chair for std::ranges @ C++ standardization committee.

[bridged from https://fosstodon.org/@foonathan on the fediverse by https://fed.brid.gy/ ]
@vitaut Feels like -0°.
November 19, 2025 at 11:47 AM
From the standardization committee that brought you keywords such as `co_return`, `decltype`, and `reinterpret_cast`, now for your consideration:

`trivially_relocatable_if_eligible`

and

`replacable_if_eligible`!

C++ - you're gonna need a bigger column limit.
November 8, 2025 at 9:05 PM
Achievement unlocked:

if consteval {
if constexpr (foo) {
if (bar) {
throw error;
}
}
}
November 8, 2025 at 11:40 AM
Reposted by Jonathan Müller
when compiling C code, enable the -fPIE option to compile to Proto-Indo-European, for maximum compatibility with all CPU architectures developed on the Eurasian continent
November 5, 2025 at 6:33 PM
From the standardization committee that brought you keywords such as `co_return`, `decltype`, and `reinterpret_cast`, now for your consideration:

`trivially_relocatable_if_eligible`

and

`replacable_if_eligible`!

C++ - you're gonna need a bigger column limit.
November 5, 2025 at 11:24 AM
I'm hoping a cobus is enough like a bus in that it gets me to my destination.
October 22, 2025 at 11:05 AM
Reposted by Jonathan Müller
As co-organizer of the C++ User Group #Aachen, I am thrilled to announce our program for next Wednesday, September 3, 2025.

We will meet at SLB starting at 6:30 p.m., and the talks will begin at 7:00 p.m..

If possible, please pre-register at […]

[Original post on nrw.social]
August 28, 2025 at 11:47 AM
LLVM bitcode is not good designed if you want to generate it efficiently.

For example, you need to define all types that a module is using without duplicates. This is easily done with a hash table and ideally you could use the binary serialization as key: Serialize into a buffer, do lookup in […]
Original post on fosstodon.org
fosstodon.org
August 21, 2025 at 7:47 PM
Another day, another #if 0 ... #endif bisect to find the code that crashes MSVC.
August 19, 2025 at 9:19 AM
Got tired of linking with LLVM so I've written something to emit bitcode directly. The blocks and records are conveniently defined in a little X macro file which then is used to stamp out a fully type safe builder API.
August 17, 2025 at 8:20 AM
@vitaut I've got a good chuckle when I saw that I contributed to the "hello world foundation"

https://algora.io/profile/foonathan
foonathan | Algora
Algora connects companies and engineers for full-time and contract work
algora.io
July 18, 2025 at 8:24 AM
Reposted by Jonathan Müller
Enjoyed the talk by @foonathan at #wearedevelopers on how to do functional programming in C++ a lot

I don't even use C++, but it was so well presented that I felt I still understood
July 11, 2025 at 9:43 AM
Today I rebased my stuff after spending two weeks on conferences only to discover that we've introduced an `use_iter_move_on_xvalue_dereference_index` customization point.
July 2, 2025 at 10:22 AM
Can anybody I know invite me to lobste.rs?
June 23, 2025 at 8:34 AM
I've used the `*---*x` operator today.
June 4, 2025 at 7:55 PM
I've tagged a new release of lexy, my C++ parser library. The last release was December 2022, so this was long overdue:

https://github.com/foonathan/lexy

#cpp #cplusplus
GitHub - foonathan/lexy: C++ parsing DSL
C++ parsing DSL. Contribute to foonathan/lexy development by creating an account on GitHub.
github.com
May 29, 2025 at 6:29 PM
Reposted by Jonathan Müller
When you finish writing your parser
May 29, 2025 at 12:02 PM
I love how fixing audio issues on various linux devices has become as simple as `pacman -S pipewire-pulse` or `pacman -S pipewire-alsa`.
April 24, 2025 at 11:07 PM
Next week, I'm going to be attending C++Now, and I'm going to be giving my two favorite talks of all time:

First, a repeat of my "Overenginering max(a, b)" talk, which is just a bunch of fun metaprogramming to solve a safety problem.

Then, a new talk "Missing (and future?) range concepts" […]
Original post on fosstodon.org
fosstodon.org
April 24, 2025 at 4:46 PM
I'm going to be speaking about missing and potentially future C++ range concepts at C++Now:

https://schedule.cppnow.org/session/2025/missing-and-future-c-range-concepts/

#cpp #cplusplus
Missing (and Future?) C++ Range Concepts – C++Now Schedule
schedule.cppnow.org
March 12, 2025 at 10:35 AM
I've been programming in C for a small project, a couple of thoughts:

* -Wimplicit-fallthrough isn't enabled by -Wall -Wextra in clang, which has bitten me.
* I got tired of `Foo foo = (foo)x`, so I'm using C23 and auto, sorry, not sorry.
* I spend a lot less time thinking about interface […]
Original post on fosstodon.org
fosstodon.org
March 9, 2025 at 3:35 PM
I published my trip report about the Hagenberg meeting last week: https://www.think-cell.com/en/career/devblog/trip-report-winter-iso-cpp-meeting-in-hagenberg-austria

It was pointed out to me that I was wrong about the potential for dangerous optimizations with contracts and ODR. It is in fact […]
Original post on fosstodon.org
fosstodon.org
February 28, 2025 at 10:13 AM
I've written a trip report about last week's C++ committee meeting in Hagenberg, Austria

https://www.think-cell.com/en/career/devblog/trip-report-winter-iso-cpp-meeting-in-hagenberg-austria

#cpp #cplusplus
Trip Report: Winter ISO C++ Meeting in Hagenberg, Austria | think-cell
www.think-cell.com
February 21, 2025 at 9:35 AM
I will be giving a keynote about functional programming at @cpponline!

https://cpponline.uk/keynote-spotlight-functional-programming-in-cpp/

#cpp #cplusplus
Keynote Spotlight - Functional Programming in C++ By Jonathan Müller - C++Online
cpponline.uk
February 13, 2025 at 2:18 PM
I'm going to be speaking at the C++ meetup in Helsinki on February 4th!

Overengineering `max(a, b)`: Mixed Comparison Functions, Common References, and Rust's Lifetime Annotations

https://www.meetup.com/cpphelsinki/events/305683323/?eventOrigin=group_upcoming_events

#cpp #cplusplus
January 24, 2025 at 9:27 AM