5 comments

[ 3.2 ms ] story [ 23.2 ms ] thread
But that doesn't mean it is impossible to write trivial harmful metaprograms in CPP, as is easily demonstrated in my counter-example die_die_stupid_c_compiler.c

I'm slightly disappointed that

  gcc -E die_die_stupid_c_compiler.c
didn't die, although it did produce about 750k of output, which is quite impressive...
Can anyone explain why this takes so long to compile? It doesn't look that complicated.

Edit: I compiled with "gcc -O3 -s", which took 8 minutes, but the executable is only 4784 bytes.

The long compilation time is due to the optimization options. Without optimization it compiles in a few seconds.

Yet, the macros leave plenty of space for optimization. See the size of your executable compared to the unoptimized one of qwph above.

"Like Perl, C++ is a swiss army chainsaw of a programming language. Unlike Perl, it's got all the blades simultaneously and permanently cast in a fixed half-open position. Don't turn it on."

Priceless.

Uhm, I find this post kind of uninspired. Did it really require experimental verification to show that meta-programming in C probably wasn't a good idea?

I find this sort of argument in general a bit straw-man-ish. They use a programming language for something it's not suited for and then reflect that back on the programming language.