Juste un petit post bookmark sur quelques MACROS en C sur des truc que je ne pensais même pas que ca soit faisable (Attention! C'est du preprocessing C99 de haut niveau)
+ Programmation fonctionnelle (macros lambda):
https://github.com/Leushenko/C99-Lambda
namespace(myFunctionList,
typedef int(* fptr)(void);
fptr functions[] = {
fn(int, (void), { return 1; }), // Simple function literals
fn(int, (void), { return 2; }),
fn(int, (void), { return 3; })
};
)
+ Macros MAP pour appliquer une MACRO à une liste d'argument
https://github.com/swansontec/map-macroMAP(f,x,y,z)
==> f(x) f(y) f(z)
+ Un ensemble de macros assez utile pour méta programmer son préprocessing (avec une méthode pour faire de la récursion de MACRO !)
https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idiomsExemple:
macro WHEN, IF, EQUAL,WHILE, ...
//An example of using this macro
#define M(i, _) i
EVAL(REPEAT(8, M, ~)) // 0 1 2 3 4 5 6 7
+ il existe aussi ce tutoriel sur le sujet
http://jhnet.co.uk/articles/cpp_magic et sa librairie sur le sujet:
https://github.com/18sg/uSHET/blob/master/lib/cpp_magic.h+ P99: une librairie de macros diverses et variées:
http://p99.gforge.inria.fr/p99-html/+ m*lib :
https://github.com/P-p-H-d/mlib