We are currently in the process of converting the website to the new design. Some pages, like this one, are still broken. We appreciate your patience.
ratchetfreak —
struct State{ int pc; }; #define DrYield(c,v) do{ state->pc = c; return(v); resume_##c:; } while…
»
Allen Webster —
My favorite macro trick is for making something that looks like a resumable function call, sort of…
»
PassiveCoder —
I like that even more, good thinking.
»
Daniel Rasmussen —
Here's a little trick to creating generic functions and types. Multiple include with the same file…
»
ratchetfreak —
[/quote] That's not complete without
»
Jason —
I wonder if some kind soul could spend some time and tell me where I went wrong with the live code…
»
Horrowind —
Not too interesting, but funny:
»
Casey Muratori —
Thanks for the kind words! Really glad the series had that effect. It's had the same effect for …
»
Randy Gaul —
When I did this I didn't bother replicating the macros, and instead hard-coded with A suffixes. So…
»
Abner Coimbre —
The fixing of the bugs has led Jeroen to redesign some key aspects of the data model and further …
»
Bl00drav3n —
Regarding the latest episode, where Casey thought about calling pow(x, 2.2) for gamma correction, …
»
PassiveCoder —
oh nice catch, thanks mmozeiko
»
Mārtiņš Možeiko —
But adding -Wv:18 will generate warning for VS2013 users. VS2015 users need to modify build script…
»
Mārtiņš Možeiko —
I dislike macros that create multiple statements. Doing them for definitions or declarations is fi…
»
Mārtiņš Možeiko —
That's wrong. It should be GetModuleHandleW, because you are using LPCWSTR argument. That is wide …
»
Mārtiņš Možeiko —
In this case it will be even better - compiler will notice that values you are initializing array …
»
Simon Anciaux —
Hi, I'm using stb_truetype.h and I've got some questions on how to properly position characters. I…
»
rizoma —
While reading the k&r book I found an interesting example (at least for a noob like me) of what I …
»
PassiveCoder —
Oh my goodness, how embarrassing! That was it, also I had to define GetModuleHandle as GetModuleHa…
»
Dominik Madarász —
You need to wrap the code inside of extern "C" scope: extern "C" { struct HINSTANCE__ { int unuse…
»
PassiveCoder —
I rather like this idea, the last time I checked the pre-processor output the windows guff made me…
»
Dominik Madarász —
Thanks, I'll look into that one. It's nice to have this topic, always stuff to learn.
»
PassiveCoder —
Hi everyone :) I'm a long time follower, first time poster, that just want to say a big to Casey …
»
Jack Mott —
I like the SCALL! That could come in handy. I just stumbled on another reflection-ish trick with e…
»
Dominik Madarász —
Honestly I'm a big fan of macros, sometimes I even unnecessarily overuse them. I either use it to …
»
Benjamin Pedersen —
The Handmade Hero code triggers a lot of warnings (primarily variable shadowing) in VS2015. These …
»
Jack Mott —
I learned of a neat macro trick today, maybe old hat to most of you but maybe not "#" is a "string…
»
Jack Mott —
I know the author is working on a GCC compatible solution now, I think he had an approach that wou…
»
Mārtiņš Možeiko —
This is relevant not only for HTML tags, but also for C++ code. If I want to type in some sentence…
»
Mārtiņš Možeiko —
The way you detect instruction set at runtime won't work with GCC/clang. For example, if you want …
»