"Bridging type systems"
with Sergey Bugaev at #GUADEC2025 25 July
09:00 CEST
Brescia
Sergey introduces peel, a fresh take on C++ bindings for GObject: zero overhead, full API coverage, deep type support.
Building your own debugger is a powerful way to understand Linux internals.
From forking and tracing to handling signals and interacting with registers, you'll gain practical insight into how debuggers actually work.
It’s also a solid exercise in writing clean, testable C++ systems code.
One thing I want from #GitHub.
We're actually getting static reflection in C++26?? Move over constexpr cmath functions, I have a new favorite!
I wonder how many thousands of lines could be removed from my project once manual serialization, comparison, enum stringification, etc. are no longer required
#programming #gamedev #indiedev #cpp #cplusplus
Dare I admit that I don't really understand what std::move() does? Of course I dare. #CPlusPlus
Reading the "Move: What it is, and how to use it" section on https://herbsutter.com/2020/02/17/move-simply/ , and comparing to the codebase I am working on, I think I see a clear discrepancy. The code uses std::move() a *lot*.
Thrid lesson of handling dates on computers.
Your day is not "11/8/2025". It's 1.762.560.000.
Go home, Clang, you are drunk!
Ang journey sa libo ka linya sa #code magsugod sa usa ka #HelloWorld!
Mao ni akong #Cplusplus setup sa #VSCode
Gusto pud ko makakita sa journey sa uban ug makakat-on sa ilang tips sa kini nga field
The pre and post increment operators in C++ are two different operators, so if you overload them you could make i++ and ++i do completely different things - assuming you hated the person who would have to maintain your code.
I wish the C++ standard had chosen a different term than
noexcept(false)
to indicate a function can throw. Why couldn't we use throw() and throw(...) instead for doesn't throw or throws some exceptions? The former is identical to before, and the latter was invalid before, wasn't it?
And it would be similar to catch(...) !
I added hot reloading of C++ gameplay code to my game :D
This is possible because "engine" code and "gameplay" code is split into different shared libraries. So when you hit F5, it compiles a new shared library for the gameplay code and loads the new one (as well as reloading all the assets etc).
Say, is there a trick in C++ to make to_string() work for any type?
If I have
using namespace std;
and then just write
to_string(foo)
it will prefer my local namespace's to_string(MyClass) and error when given an int, instead of picking std::to_string(int) for those.
Do I really have to add all variants of
inline string to_string(int n) { return std::to_string(n); }
to my namespace to be able to just say to_string(foo) for any type and make it work?
Some nice additions for annotating C++ code to make it import better into Swift:
I'm starting to decommission std::format because of a disagreement with the C++ committee #programming #cplusplus
Oh, I forgot my other complaint.
4) The reference implementation Radicle client is written in #Rust. Not necessarily a problem, since if the protocol takes off there will certainly be implementations in more mature languages like #Python or #CPlusPlus, but I don't love the extra bit of uncertainly with a new language along with a new protocol.
Presentación de mi editor / mezclador de sonido.