Variable argument parameter lists
While brushing up on some coding samples I came across va_args which is included within the stdargs header file. Here’s an example of how it’s used:
To compile: g++ va_args_test.cpp -o va_args it outputs: >>Ten (doubles)10 twelve 12 >>Ten (longs)10 twelve 12
This triggered a mad idea and became part one of my many tiered master plan to mold c++ into my unwilling modern feeling, syntactically sugar coated servant (fallback). We’ll see how far I get. Next up, currying! I leaned heavily on void* to make it work, and leveraged typedef to aid readability. Bear with me, the source is a little longer:
The code takes sCurry
.
Here’s an example of it run:
Mark-Essels-iMac:misc messel$ g++ curry.cpp -o curry Mark-Essels-iMac:misc messel$ ./curry 2 Address to base numeric 0x7fff5fbfdbc8 base val 2 extracting val from curry 2 temp 2 val 1 temp 2 val 1 addOne-> 3 curried addOne 3 start curry val 3 extracting val from curry 3 temp 3 val 1 temp 4 val 2 temp 8 val 7 temp 1 val 10 curried output f10(f7(f2(f1(val)))) or ((val+1)*2-7)/10 = 0.1
Next up, dynamic typing without boost::any…maybe.
Notes:
Pingback: Folding in c++ — Victus Spiritus