Hi René, On Tue, 31 Jan 2017, René Scharfe wrote: > Am 31.01.2017 um 13:13 schrieb Johannes Schindelin: > > > #define SIMPLE_SWAP(T, a, b) do { T tmp_ = a; a = b; b = tmp_; } while (0) > > ... > > uint32_t large; > > char nybble; > > > > ... > > > > if (!(large & ~0xf)) { > > SIMPLE_SWAP(char, nybble, large); > > ... > > } > > > > i.e. mixing types, when possible. > > > > And while I do not necessarily expect that we need anything like this > > anytime soon, merely the fact that it allows for this flexibility, while > > being very readable at the same time, would make it a pretty good design > > in my book. > > Such a skinny macro which only hides repetition is kind of attractive due to > its simplicity; I can't say the same about the mixed type example above, > though. > > The fat version isn't that bad either even without inlining, includes a few > safety checks and doesn't require us to tell the compiler something it > already knows very well. I'd rather let the machine do the work. I am a big fan of letting the machine do the work. But I am not a big fan of *creating* work for the machine. So if you asked me what I would think of a script that, given a patch "in mbox format", automatically fixes all formatting issues that typically take up a sizable chunk of review time, I would say: yeah, let's get this done! It would probably take away some fun because then reviewers could bike-shed less, but I'd think that is a good thing. If you asked me what my opinion is about a program you wrote that gathers all the threads and sub threads of code^Wpatch reviews on the Git mailing list, and cross-references them with public Git branches, and with Junio's What's Cooking mail, and with the SHA-1s in `pu`: Great! That would relieve me of a ton of really boring and grueling work, if the machine can do it, all the better. And if you ask me about adding a complex macro that adds a bunch of work for the C compiler just to produce the same assembler code as a one-liner macro would have produced much easier, I will reply that we could maybe instead spend that time on letting the machine perform tasks that already need to be done... :-) Ciao, Dscho