Commit f02f4165 by Wenzel Jakob

support longer argument lists in expansion of variadic DOC() macro

parent dc110276
...@@ -232,7 +232,7 @@ if __name__ == '__main__': ...@@ -232,7 +232,7 @@ if __name__ == '__main__':
#define __EXPAND(x) x #define __EXPAND(x) x
#define __COUNT(_1, _2, _3, _4, _5, COUNT, ...) COUNT #define __COUNT(_1, _2, _3, _4, _5, COUNT, ...) COUNT
#define __VA_SIZE(...) __EXPAND(__COUNT(__VA_ARGS__, 5, 4, 3, 2, 1)) #define __VA_SIZE(...) __EXPAND(__COUNT(__VA_ARGS__, 7, 6, 5, 4, 3, 2, 1))
#define __CAT1(a, b) a ## b #define __CAT1(a, b) a ## b
#define __CAT2(a, b) __CAT1(a, b) #define __CAT2(a, b) __CAT1(a, b)
#define __DOC1(n1) __doc_##n1 #define __DOC1(n1) __doc_##n1
...@@ -240,6 +240,8 @@ if __name__ == '__main__': ...@@ -240,6 +240,8 @@ if __name__ == '__main__':
#define __DOC3(n1, n2, n3) __doc_##n1##_##n2##_##n3 #define __DOC3(n1, n2, n3) __doc_##n1##_##n2##_##n3
#define __DOC4(n1, n2, n3, n4) __doc_##n1##_##n2##_##n3##_##n4 #define __DOC4(n1, n2, n3, n4) __doc_##n1##_##n2##_##n3##_##n4
#define __DOC5(n1, n2, n3, n4, n5) __doc_##n1##_##n2##_##n3##_##n4##_##n5 #define __DOC5(n1, n2, n3, n4, n5) __doc_##n1##_##n2##_##n3##_##n4##_##n5
#define __DOC6(n1, n2, n3, n4, n5, n6) __doc_##n1##_##n2##_##n3##_##n4##_##n5##_##n6
#define __DOC7(n1, n2, n3, n4, n5, n6, n7) __doc_##n1##_##n2##_##n3##_##n4##_##n5##_##n6##_##n7
#define DOC(...) __EXPAND(__EXPAND(__CAT2(__DOC, __VA_SIZE(__VA_ARGS__)))(__VA_ARGS__)) #define DOC(...) __EXPAND(__EXPAND(__CAT2(__DOC, __VA_SIZE(__VA_ARGS__)))(__VA_ARGS__))
#if defined(__GNUG__) #if defined(__GNUG__)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment