001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
055:
056:
057:
058:
059:
060:
061:
062:
063:
064:
065:
066:
067:
068:
069:
070:
071:
072:
073:
074:
075:
076:
077:
078:
079:
080:
081:
082:
083:
084:
085:
086:
087:
088:
089:
090:
091:
092:
093:
094:
095:
096:
097:
098:
099:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:

/*
* Copyright (c), Zeriph Enterprises
* All rights reserved.
*
* Contributor(s):
* Zechariah Perez, omni (at) zeriph (dot) com
*
* THIS SOFTWARE IS PROVIDED BY ZERIPH AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL ZERIPH AND CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#if !defined(OMNI_MACRO_HELPER_HPP)
#define OMNI_MACRO_HELPER_HPP 1
#include <omni/defs/helper.hpp>
#define OMNI_MAC_1_FW 1
#define OMNI_MAC_2_FW 2
#define OMNI_MAC_3_FW 3
#define OMNI_MAC_4_FW 4
#define OMNI_MAC_5_FW 5
#define OMNI_MAC_6_FW 6
#define OMNI_MAC_7_FW 7
#define OMNI_MAC_8_FW 8
#define OMNI_MAC_9_FW 9
#define OMNI_MAC_10_FW 10
#define OMNI_MAC_11_FW 11
#define OMNI_MAC_12_FW 12
#define OMNI_MAC_13_FW 13
#define OMNI_MAC_14_FW 14
#define OMNI_MAC_15_FW 15
#define OMNI_MAC_16_FW 16
#define OMNI_MAC_17_FW 17
#define OMNI_MAC_18_FW 18
#define OMNI_MAC_19_FW 19
#define OMNI_MAC_20_FW 20
#define OMNI_MAC_21_FW 21
#define OMNI_MAC_22_FW 22
#define OMNI_MAC_23_FW 23
#define OMNI_MAC_24_FW 24
#define OMNI_MAC_25_FW 25
#define OMNI_MAC_26_FW 26
#define OMNI_MAC_27_FW 27
#define OMNI_MAC_28_FW 28
#define OMNI_MAC_29_FW 29
#define OMNI_MAC_30_FW 30
#define OMNI_MAC_31_FW 31
#define OMNI_MAC_32_FW 32
#define OMNI_MAC_33_FW 33
#define OMNI_MAC_34_FW 34
#define OMNI_MAC_35_FW 35
#define OMNI_MAC_36_FW 36
#define OMNI_MAC_37_FW 37
#define OMNI_MAC_38_FW 38
#define OMNI_MAC_39_FW 39
#define OMNI_MAC_40_FW 40
#define OMNI_MAC_41_FW 41
#define OMNI_MAC_42_FW 42
#define OMNI_MAC_43_FW 43
#define OMNI_MAC_44_FW 44
#define OMNI_MAC_45_FW 45
#define OMNI_MAC_46_FW 46
#define OMNI_MAC_47_FW 47
#define OMNI_MAC_48_FW 48
#define OMNI_MAC_49_FW 49
#define OMNI_MAC_50_FW 50
#define OMNI_MAC_51_FW 51
#define OMNI_MAC_52_FW 52
#define OMNI_MAC_53_FW 53
#define OMNI_MAC_54_FW 54
#define OMNI_MAC_55_FW 55
#define OMNI_MAC_56_FW 56
#define OMNI_MAC_57_FW 57
#define OMNI_MAC_58_FW 58
#define OMNI_MAC_59_FW 59
#define OMNI_MAC_60_FW 60
#define OMNI_MAC_61_FW 61
#define OMNI_MAC_62_FW 62
#define OMNI_MAC_63_FW 63
#define OMNI_MAC_64_FW 64
#define OMNI_MAC_65_FW 65
#define OMNI_MAC_66_FW 66
#define OMNI_MAC_67_FW 67
#define OMNI_MAC_68_FW 68
#define OMNI_MAC_69_FW 69
#define OMNI_MAC_70_FW 70
#define OMNI_MAC_71_FW 71
#define OMNI_MAC_72_FW 72
#define OMNI_MAC_73_FW 73
#define OMNI_MAC_74_FW 74
#define OMNI_MAC_75_FW 75
#define OMNI_MAC_76_FW 76
#define OMNI_MAC_77_FW 77
#define OMNI_MAC_78_FW 78
#define OMNI_MAC_79_FW 79
#define OMNI_MAC_80_FW 80
#define OMNI_MAC_81_FW 81
#define OMNI_MAC_82_FW 82
#define OMNI_MAC_83_FW 83
#define OMNI_MAC_84_FW 84
#define OMNI_MAC_85_FW 85
#define OMNI_MAC_86_FW 86
#define OMNI_MAC_87_FW 87
#define OMNI_MAC_88_FW 88
#define OMNI_MAC_89_FW 89
#define OMNI_MAC_90_FW 90
#define OMNI_MAC_91_FW 91
#define OMNI_MAC_92_FW 92
#define OMNI_MAC_93_FW 93
#define OMNI_MAC_94_FW 94
#define OMNI_MAC_95_FW 95
#define OMNI_MAC_96_FW 96
#define OMNI_MAC_97_FW 97
#define OMNI_MAC_98_FW 98
#define OMNI_MAC_99_FW 99
#define OMNI_MAC_100_FW 100
#define OMNI_MAC_101_FW 101
#define OMNI_MAC_102_FW 102
#define OMNI_MAC_103_FW 103
#define OMNI_MAC_104_FW 104
#define OMNI_MAC_105_FW 105
#define OMNI_MAC_106_FW 106
#define OMNI_MAC_107_FW 107
#define OMNI_MAC_108_FW 108
#define OMNI_MAC_109_FW 109
#define OMNI_MAC_110_FW 110
#define OMNI_MAC_111_FW 111
#define OMNI_MAC_112_FW 112
#define OMNI_MAC_113_FW 113
#define OMNI_MAC_114_FW 114
#define OMNI_MAC_115_FW 115
#define OMNI_MAC_116_FW 116
#define OMNI_MAC_117_FW 117
#define OMNI_MAC_118_FW 118
#define OMNI_MAC_119_FW 119
#define OMNI_MAC_120_FW 120
#define OMNI_MAC_121_FW 121
#define OMNI_MAC_122_FW 122
#define OMNI_MAC_123_FW 123
#define OMNI_MAC_124_FW 124
// DEV_NOTE: max of 127 total faux 'variadic' macros per MS compiler issues; realistically it's 125, since
// it's VAL(1,2,..,125,N,...) and [N,...] == 2 values, thus, 127 - 2 == 125 total macro values to help
#define OMNI_GET_MACRO_FUNC_FW(_1,_2,_3,_4,_5,_6,_7,_8,_9, \
_10,_11,_12,_13,_14,_15,_16,_17,_18,_19, \
_20,_21,_22,_23,_24,_25,_26,_27,_28,_29, \
_30,_31,_32,_33,_34,_35,_36,_37,_38,_39, \
_40,_41,_42,_43,_44,_45,_46,_47,_48,_49, \
_50,_51,_52,_53,_54,_55,_56,_57,_58,_59, \
_60,_61,_62,_63,_64,_65,_66,_67,_68,_69, \
_70,_71,_72,_73,_74,_75,_76,_77,_78,_79, \
_80,_81,_82,_83,_84,_85,_86,_87,_88,_89, \
_90,_91,_92,_93,_94,_95,_96,_97,_98,_99, \
_100,_101,_102,_103,_104,_105,_106,_107,_108,_109, \
_110,_111,_112,_113,_114,_115,_116,_117,_118,_119, \
_120,_121,_122,_123,_124,_125,N,...) OMNI_EXPAND_FW( N )
#define OMNI_MACRO_ARG_COUNT(...) OMNI_EXPAND_FW( OMNI_GET_MACRO_FUNC_FW(__VA_ARGS__, \
OMNI_MAC_125_FW,OMNI_MAC_124_FW,OMNI_MAC_123_FW,OMNI_MAC_122_FW,OMNI_MAC_121_FW, \
OMNI_MAC_120_FW,OMNI_MAC_119_FW,OMNI_MAC_118_FW,OMNI_MAC_117_FW,OMNI_MAC_116_FW, \
OMNI_MAC_115_FW,OMNI_MAC_114_FW,OMNI_MAC_113_FW,OMNI_MAC_112_FW,OMNI_MAC_111_FW, \
OMNI_MAC_110_FW,OMNI_MAC_109_FW,OMNI_MAC_108_FW,OMNI_MAC_107_FW,OMNI_MAC_106_FW, \
OMNI_MAC_105_FW,OMNI_MAC_104_FW,OMNI_MAC_103_FW,OMNI_MAC_102_FW,OMNI_MAC_101_FW, \
OMNI_MAC_100_FW,OMNI_MAC_99_FW,OMNI_MAC_98_FW,OMNI_MAC_97_FW,OMNI_MAC_96_FW, \
OMNI_MAC_95_FW,OMNI_MAC_94_FW,OMNI_MAC_93_FW,OMNI_MAC_92_FW,OMNI_MAC_91_FW, \
OMNI_MAC_90_FW,OMNI_MAC_89_FW,OMNI_MAC_88_FW,OMNI_MAC_87_FW,OMNI_MAC_86_FW, \
OMNI_MAC_85_FW,OMNI_MAC_84_FW,OMNI_MAC_83_FW,OMNI_MAC_82_FW,OMNI_MAC_81_FW, \
OMNI_MAC_80_FW,OMNI_MAC_79_FW,OMNI_MAC_78_FW,OMNI_MAC_77_FW,OMNI_MAC_76_FW, \
OMNI_MAC_75_FW,OMNI_MAC_74_FW,OMNI_MAC_73_FW,OMNI_MAC_72_FW,OMNI_MAC_71_FW, \
OMNI_MAC_70_FW,OMNI_MAC_69_FW,OMNI_MAC_68_FW,OMNI_MAC_67_FW,OMNI_MAC_66_FW, \
OMNI_MAC_65_FW,OMNI_MAC_64_FW,OMNI_MAC_63_FW,OMNI_MAC_62_FW,OMNI_MAC_61_FW, \
OMNI_MAC_60_FW,OMNI_MAC_59_FW,OMNI_MAC_58_FW,OMNI_MAC_57_FW,OMNI_MAC_56_FW, \
OMNI_MAC_55_FW,OMNI_MAC_54_FW,OMNI_MAC_53_FW,OMNI_MAC_52_FW,OMNI_MAC_51_FW, \
OMNI_MAC_50_FW,OMNI_MAC_49_FW,OMNI_MAC_48_FW,OMNI_MAC_47_FW,OMNI_MAC_46_FW, \
OMNI_MAC_45_FW,OMNI_MAC_44_FW,OMNI_MAC_43_FW,OMNI_MAC_42_FW,OMNI_MAC_41_FW, \
OMNI_MAC_40_FW,OMNI_MAC_39_FW,OMNI_MAC_38_FW,OMNI_MAC_37_FW,OMNI_MAC_36_FW, \
OMNI_MAC_35_FW,OMNI_MAC_34_FW,OMNI_MAC_33_FW,OMNI_MAC_32_FW,OMNI_MAC_31_FW, \
OMNI_MAC_30_FW,OMNI_MAC_29_FW,OMNI_MAC_28_FW,OMNI_MAC_27_FW,OMNI_MAC_26_FW, \
OMNI_MAC_25_FW,OMNI_MAC_24_FW,OMNI_MAC_23_FW,OMNI_MAC_22_FW,OMNI_MAC_21_FW, \
OMNI_MAC_20_FW,OMNI_MAC_19_FW,OMNI_MAC_18_FW,OMNI_MAC_17_FW,OMNI_MAC_16_FW, \
OMNI_MAC_15_FW,OMNI_MAC_14_FW,OMNI_MAC_13_FW,OMNI_MAC_12_FW,OMNI_MAC_11_FW, \
OMNI_MAC_10_FW,OMNI_MAC_9_FW,OMNI_MAC_8_FW,OMNI_MAC_7_FW,OMNI_MAC_6_FW, \
OMNI_MAC_5_FW,OMNI_MAC_4_FW,OMNI_MAC_3_FW,OMNI_MAC_2_FW,OMNI_MAC_1_FW) )
#endif // OMNI_MACRO_HELPER_HPP