1 # /* ************************************************************************** 2 # * * 3 # * (C) Copyright Paul Mensonides 2002. 4 # * Distributed under the Boost Software License, Version 1.0. (See 5 # * accompanying file LICENSE_1_0.txt or copy at 6 # * http://www.boost.org/LICENSE_1_0.txt) 7 # * * 8 # ************************************************************************** */ 9 # 10 # /* See http://www.boost.org for most recent version. */ 11 # 12 # ifndef BOOST_PP_VALUE 13 # error BOOST_PP_ERROR: BOOST_PP_VALUE is not defined 14 # endif 15 # 16 # undef BOOST_PP_SLOT_TEMP_1 17 # undef BOOST_PP_SLOT_TEMP_2 18 # undef BOOST_PP_SLOT_TEMP_3 19 # undef BOOST_PP_SLOT_TEMP_4 20 # undef BOOST_PP_SLOT_TEMP_5 21 # undef BOOST_PP_SLOT_TEMP_6 22 # undef BOOST_PP_SLOT_TEMP_7 23 # undef BOOST_PP_SLOT_TEMP_8 24 # undef BOOST_PP_SLOT_TEMP_9 25 # undef BOOST_PP_SLOT_TEMP_10 26 # 27 # if (BOOST_PP_VALUE) / 1000000000UL == 0 28 # define BOOST_PP_SLOT_TEMP_10 0 29 # elif (BOOST_PP_VALUE) / 1000000000UL == 1 30 # define BOOST_PP_SLOT_TEMP_10 1 31 # elif (BOOST_PP_VALUE) / 1000000000UL == 2 32 # define BOOST_PP_SLOT_TEMP_10 2 33 # elif (BOOST_PP_VALUE) / 1000000000UL == 3 34 # define BOOST_PP_SLOT_TEMP_10 3 35 # elif (BOOST_PP_VALUE) / 1000000000UL == 4 36 # define BOOST_PP_SLOT_TEMP_10 4 37 # elif (BOOST_PP_VALUE) / 1000000000UL == 5 38 # define BOOST_PP_SLOT_TEMP_10 5 39 # elif (BOOST_PP_VALUE) / 1000000000UL == 6 40 # define BOOST_PP_SLOT_TEMP_10 6 41 # elif (BOOST_PP_VALUE) / 1000000000UL == 7 42 # define BOOST_PP_SLOT_TEMP_10 7 43 # elif (BOOST_PP_VALUE) / 1000000000UL == 8 44 # define BOOST_PP_SLOT_TEMP_10 8 45 # elif (BOOST_PP_VALUE) / 1000000000UL == 9 46 # define BOOST_PP_SLOT_TEMP_10 9 47 # endif 48 # 49 # if BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 0 50 # define BOOST_PP_SLOT_TEMP_9 0 51 # elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 1 52 # define BOOST_PP_SLOT_TEMP_9 1 53 # elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 2 54 # define BOOST_PP_SLOT_TEMP_9 2 55 # elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 3 56 # define BOOST_PP_SLOT_TEMP_9 3 57 # elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 4 58 # define BOOST_PP_SLOT_TEMP_9 4 59 # elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 5 60 # define BOOST_PP_SLOT_TEMP_9 5 61 # elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 6 62 # define BOOST_PP_SLOT_TEMP_9 6 63 # elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 7 64 # define BOOST_PP_SLOT_TEMP_9 7 65 # elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 8 66 # define BOOST_PP_SLOT_TEMP_9 8 67 # elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 9 68 # define BOOST_PP_SLOT_TEMP_9 9 69 # endif 70 # 71 # if BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 0 72 # define BOOST_PP_SLOT_TEMP_8 0 73 # elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 1 74 # define BOOST_PP_SLOT_TEMP_8 1 75 # elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 2 76 # define BOOST_PP_SLOT_TEMP_8 2 77 # elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 3 78 # define BOOST_PP_SLOT_TEMP_8 3 79 # elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 4 80 # define BOOST_PP_SLOT_TEMP_8 4 81 # elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 5 82 # define BOOST_PP_SLOT_TEMP_8 5 83 # elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 6 84 # define BOOST_PP_SLOT_TEMP_8 6 85 # elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 7 86 # define BOOST_PP_SLOT_TEMP_8 7 87 # elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 8 88 # define BOOST_PP_SLOT_TEMP_8 8 89 # elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 9 90 # define BOOST_PP_SLOT_TEMP_8 9 91 # endif 92 # 93 # if BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 0 94 # define BOOST_PP_SLOT_TEMP_7 0 95 # elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 1 96 # define BOOST_PP_SLOT_TEMP_7 1 97 # elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 2 98 # define BOOST_PP_SLOT_TEMP_7 2 99 # elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 3 100 # define BOOST_PP_SLOT_TEMP_7 3 101 # elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 4 102 # define BOOST_PP_SLOT_TEMP_7 4 103 # elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 5 104 # define BOOST_PP_SLOT_TEMP_7 5 105 # elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 6 106 # define BOOST_PP_SLOT_TEMP_7 6 107 # elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 7 108 # define BOOST_PP_SLOT_TEMP_7 7 109 # elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 8 110 # define BOOST_PP_SLOT_TEMP_7 8 111 # elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 9 112 # define BOOST_PP_SLOT_TEMP_7 9 113 # endif 114 # 115 # if BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 0 116 # define BOOST_PP_SLOT_TEMP_6 0 117 # elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 1 118 # define BOOST_PP_SLOT_TEMP_6 1 119 # elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 2 120 # define BOOST_PP_SLOT_TEMP_6 2 121 # elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 3 122 # define BOOST_PP_SLOT_TEMP_6 3 123 # elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 4 124 # define BOOST_PP_SLOT_TEMP_6 4 125 # elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 5 126 # define BOOST_PP_SLOT_TEMP_6 5 127 # elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 6 128 # define BOOST_PP_SLOT_TEMP_6 6 129 # elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 7 130 # define BOOST_PP_SLOT_TEMP_6 7 131 # elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 8 132 # define BOOST_PP_SLOT_TEMP_6 8 133 # elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 9 134 # define BOOST_PP_SLOT_TEMP_6 9 135 # endif 136 # 137 # if BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 0 138 # define BOOST_PP_SLOT_TEMP_5 0 139 # elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 1 140 # define BOOST_PP_SLOT_TEMP_5 1 141 # elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 2 142 # define BOOST_PP_SLOT_TEMP_5 2 143 # elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 3 144 # define BOOST_PP_SLOT_TEMP_5 3 145 # elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 4 146 # define BOOST_PP_SLOT_TEMP_5 4 147 # elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 5 148 # define BOOST_PP_SLOT_TEMP_5 5 149 # elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 6 150 # define BOOST_PP_SLOT_TEMP_5 6 151 # elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 7 152 # define BOOST_PP_SLOT_TEMP_5 7 153 # elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 8 154 # define BOOST_PP_SLOT_TEMP_5 8 155 # elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 9 156 # define BOOST_PP_SLOT_TEMP_5 9 157 # endif 158 # 159 # if BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 0 160 # define BOOST_PP_SLOT_TEMP_4 0 161 # elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 1 162 # define BOOST_PP_SLOT_TEMP_4 1 163 # elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 2 164 # define BOOST_PP_SLOT_TEMP_4 2 165 # elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 3 166 # define BOOST_PP_SLOT_TEMP_4 3 167 # elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 4 168 # define BOOST_PP_SLOT_TEMP_4 4 169 # elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 5 170 # define BOOST_PP_SLOT_TEMP_4 5 171 # elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 6 172 # define BOOST_PP_SLOT_TEMP_4 6 173 # elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 7 174 # define BOOST_PP_SLOT_TEMP_4 7 175 # elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 8 176 # define BOOST_PP_SLOT_TEMP_4 8 177 # elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 9 178 # define BOOST_PP_SLOT_TEMP_4 9 179 # endif 180 # 181 # if BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 0 182 # define BOOST_PP_SLOT_TEMP_3 0 183 # elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 1 184 # define BOOST_PP_SLOT_TEMP_3 1 185 # elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 2 186 # define BOOST_PP_SLOT_TEMP_3 2 187 # elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 3 188 # define BOOST_PP_SLOT_TEMP_3 3 189 # elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 4 190 # define BOOST_PP_SLOT_TEMP_3 4 191 # elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 5 192 # define BOOST_PP_SLOT_TEMP_3 5 193 # elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 6 194 # define BOOST_PP_SLOT_TEMP_3 6 195 # elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 7 196 # define BOOST_PP_SLOT_TEMP_3 7 197 # elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 8 198 # define BOOST_PP_SLOT_TEMP_3 8 199 # elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 9 200 # define BOOST_PP_SLOT_TEMP_3 9 201 # endif 202 # 203 # if BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 0 204 # define BOOST_PP_SLOT_TEMP_2 0 205 # elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 1 206 # define BOOST_PP_SLOT_TEMP_2 1 207 # elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 2 208 # define BOOST_PP_SLOT_TEMP_2 2 209 # elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 3 210 # define BOOST_PP_SLOT_TEMP_2 3 211 # elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 4 212 # define BOOST_PP_SLOT_TEMP_2 4 213 # elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 5 214 # define BOOST_PP_SLOT_TEMP_2 5 215 # elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 6 216 # define BOOST_PP_SLOT_TEMP_2 6 217 # elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 7 218 # define BOOST_PP_SLOT_TEMP_2 7 219 # elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 8 220 # define BOOST_PP_SLOT_TEMP_2 8 221 # elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 9 222 # define BOOST_PP_SLOT_TEMP_2 9 223 # endif 224 # 225 # if BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 0 226 # define BOOST_PP_SLOT_TEMP_1 0 227 # elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 1 228 # define BOOST_PP_SLOT_TEMP_1 1 229 # elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 2 230 # define BOOST_PP_SLOT_TEMP_1 2 231 # elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 3 232 # define BOOST_PP_SLOT_TEMP_1 3 233 # elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 4 234 # define BOOST_PP_SLOT_TEMP_1 4 235 # elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 5 236 # define BOOST_PP_SLOT_TEMP_1 5 237 # elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 6 238 # define BOOST_PP_SLOT_TEMP_1 6 239 # elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 7 240 # define BOOST_PP_SLOT_TEMP_1 7 241 # elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 8 242 # define BOOST_PP_SLOT_TEMP_1 8 243 # elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 9 244 # define BOOST_PP_SLOT_TEMP_1 9 245 # endif 246 # 247 # undef BOOST_PP_VALUE 248