GNU Radio Manual and C++ API Reference  3.10.9.1
The Free & Open Software Radio Ecosystem
docs/doxygen/pydoc_macros.h
Go to the documentation of this file.
1 #ifndef PYDOC_MACROS_H
2 #define PYDOC_MACROS_H
3 
4 #define __EXPAND(x) x
5 #define __COUNT(_1, _2, _3, _4, _5, _6, _7, COUNT, ...) COUNT
6 #define __VA_SIZE(...) __EXPAND(__COUNT(__VA_ARGS__, 7, 6, 5, 4, 3, 2, 1))
7 #define __CAT1(a, b) a##b
8 #define __CAT2(a, b) __CAT1(a, b)
9 #define __DOC1(n1) __doc_##n1
10 #define __DOC2(n1, n2) __doc_##n1##_##n2
11 #define __DOC3(n1, n2, n3) __doc_##n1##_##n2##_##n3
12 #define __DOC4(n1, n2, n3, n4) __doc_##n1##_##n2##_##n3##_##n4
13 #define __DOC5(n1, n2, n3, n4, n5) __doc_##n1##_##n2##_##n3##_##n4##_##n5
14 #define __DOC6(n1, n2, n3, n4, n5, n6) __doc_##n1##_##n2##_##n3##_##n4##_##n5##_##n6
15 #define __DOC7(n1, n2, n3, n4, n5, n6, n7) \
16  __doc_##n1##_##n2##_##n3##_##n4##_##n5##_##n6##_##n7
17 #define DOC(...) __EXPAND(__EXPAND(__CAT2(__DOC, __VA_SIZE(__VA_ARGS__)))(__VA_ARGS__))
18 
19 #endif // PYDOC_MACROS_H