fork download
  1. #define PP_MAP(m, ...) PP_MAP_DESCEND(m,__VA_ARGS__, \
  2.   16, 15, 14, 13, 12, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1)(m, __VA_ARGS__)
  3.  
  4. #define PP_MAP_DESCEND(_, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, z, ...) \
  5.   PP_MAP_##z
  6.  
  7. #define PP_MAP_1(m, x) m(x)
  8. #define PP_MAP_2(m, x, ...) m(x) PP_MAP_1(m, __VA_ARGS__)
  9. #define PP_MAP_3(m, x, ...) m(x) PP_MAP_2(m, __VA_ARGS__)
  10. #define PP_MAP_4(m, x, ...) m(x) PP_MAP_3(m, __VA_ARGS__)
  11. #define PP_MAP_5(m, x, ...) m(x) PP_MAP_4(m, __VA_ARGS__)
  12. #define PP_MAP_6(m, x, ...) m(x) PP_MAP_5(m, __VA_ARGS__)
  13. #define PP_MAP_7(m, x, ...) m(x) PP_MAP_6(m, __VA_ARGS__)
  14. #define PP_MAP_8(m, x, ...) m(x) PP_MAP_7(m, __VA_ARGS__)
  15. #define PP_MAP_9(m, x, ...) m(x) PP_MAP_8(m, __VA_ARGS__)
  16. #define PP_MAP_10(m, x, ...) m(x) PP_MAP_9(m, __VA_ARGS__)
  17. #define PP_MAP_11(m, x, ...) m(x) PP_MAP_10(m, __VA_ARGS__)
  18. #define PP_MAP_12(m, x, ...) m(x) PP_MAP_11(m, __VA_ARGS__)
  19. #define PP_MAP_13(m, x, ...) m(x) PP_MAP_12(m, __VA_ARGS__)
  20. #define PP_MAP_14(m, x, ...) m(x) PP_MAP_13(m, __VA_ARGS__)
  21. #define PP_MAP_15(m, x, ...) m(x) PP_MAP_14(m, __VA_ARGS__)
  22. #define PP_MAP_16(m, x, ...) m(x) PP_MAP_15(m, __VA_ARGS__)
  23.  
  24. #define ker(...) PP_MAP(ker_, __VA_ARGS__)
  25.  
  26. #define ker_(x) [x] // Тут пишешь, чего зделоть.
  27.  
  28. #include <stdio.h>
  29.  
  30. int main(void)
  31. {
  32. int array[2][3][4] = {0};
  33. int asd = 3;
  34. return array ker(1, 2, asd); // Я хуй знаю, что еще с этим сделать.
  35. }
  36.  
Success #stdin #stdout 0s 4284KB
stdin
Standard input is empty
stdout
Standard output is empty