Fermer2
PpHdLe 19/10/2014 à 10:22
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-macro

MAP(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-idioms

Exemple:
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