script_core 0.2.1 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1339) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +43 -42
  4. data/.ruby-version +1 -1
  5. data/.travis.yml +2 -1
  6. data/Gemfile +4 -6
  7. data/README.md +15 -3
  8. data/Rakefile +3 -12
  9. data/bin/bundle +114 -0
  10. data/bin/console +2 -2
  11. data/bootstrap.sh +2 -2
  12. data/ext/enterprise_script_service/libseccomp/.travis.yml +3 -5
  13. data/ext/enterprise_script_service/libseccomp/CHANGELOG +10 -0
  14. data/ext/enterprise_script_service/libseccomp/CREDITS +3 -0
  15. data/ext/enterprise_script_service/libseccomp/README.md +18 -0
  16. data/ext/enterprise_script_service/libseccomp/configure.ac +1 -1
  17. data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +7 -0
  18. data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +16 -0
  19. data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +16 -0
  20. data/ext/enterprise_script_service/libseccomp/tests/.gitignore +1 -0
  21. data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +3 -3
  22. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.c +48 -0
  23. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.py +38 -0
  24. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.tests +11 -0
  25. data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +6 -3
  26. data/ext/enterprise_script_service/libseccomp/tests/regression +4 -0
  27. data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +0 -3
  28. data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +2 -0
  29. data/ext/enterprise_script_service/mruby/.github/workflows/build.yml +106 -0
  30. data/ext/enterprise_script_service/mruby/.github/workflows/main.yml +24 -0
  31. data/ext/enterprise_script_service/mruby/.gitignore +3 -0
  32. data/ext/enterprise_script_service/mruby/.gitlab-ci.yml +1627 -427
  33. data/ext/enterprise_script_service/mruby/.travis.yml +6 -14
  34. data/ext/enterprise_script_service/mruby/AUTHORS +1 -0
  35. data/ext/enterprise_script_service/mruby/CONTRIBUTING.md +1 -1
  36. data/ext/enterprise_script_service/mruby/Doxyfile +1 -1
  37. data/ext/enterprise_script_service/mruby/LICENSE +1 -1
  38. data/ext/enterprise_script_service/mruby/Makefile +1 -3
  39. data/ext/enterprise_script_service/mruby/README.md +6 -6
  40. data/ext/enterprise_script_service/mruby/Rakefile +8 -7
  41. data/ext/enterprise_script_service/mruby/appveyor.yml +9 -12
  42. data/ext/enterprise_script_service/mruby/appveyor_config.rb +8 -12
  43. data/ext/enterprise_script_service/mruby/build_config.rb +6 -6
  44. data/ext/enterprise_script_service/mruby/doc/guides/compile.md +10 -6
  45. data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
  46. data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +4 -8
  47. data/ext/enterprise_script_service/mruby/doc/guides/mrbgems.md +3 -3
  48. data/ext/enterprise_script_service/mruby/doc/limitations.md +10 -10
  49. data/ext/enterprise_script_service/mruby/doc/opcode.md +108 -95
  50. data/ext/enterprise_script_service/mruby/examples/targets/build_config_ArduinoDue.rb +2 -2
  51. data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelEdison.rb +2 -2
  52. data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelGalileo.rb +2 -2
  53. data/ext/enterprise_script_service/mruby/examples/targets/build_config_RX630.rb +2 -2
  54. data/ext/enterprise_script_service/mruby/examples/targets/build_config_chipKITMax32.rb +2 -2
  55. data/ext/enterprise_script_service/mruby/examples/targets/build_config_dreamcast_shelf.rb +108 -0
  56. data/ext/enterprise_script_service/mruby/include/mrbconf.h +10 -7
  57. data/ext/enterprise_script_service/mruby/include/mruby.h +12 -9
  58. data/ext/enterprise_script_service/mruby/include/mruby/array.h +4 -0
  59. data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +12 -2
  60. data/ext/enterprise_script_service/mruby/include/mruby/boxing_no.h +1 -0
  61. data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +26 -30
  62. data/ext/enterprise_script_service/mruby/include/mruby/class.h +7 -0
  63. data/ext/enterprise_script_service/mruby/include/mruby/common.h +10 -0
  64. data/ext/enterprise_script_service/mruby/include/mruby/compile.h +12 -3
  65. data/ext/enterprise_script_service/mruby/include/mruby/dump.h +1 -17
  66. data/ext/enterprise_script_service/mruby/include/mruby/irep.h +10 -0
  67. data/ext/enterprise_script_service/mruby/include/mruby/istruct.h +4 -1
  68. data/ext/enterprise_script_service/mruby/include/mruby/khash.h +23 -5
  69. data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +1 -0
  70. data/ext/enterprise_script_service/mruby/include/mruby/ops.h +3 -2
  71. data/ext/enterprise_script_service/mruby/include/mruby/string.h +3 -2
  72. data/ext/enterprise_script_service/mruby/include/mruby/value.h +9 -16
  73. data/ext/enterprise_script_service/mruby/include/mruby/version.h +4 -4
  74. data/ext/enterprise_script_service/mruby/lib/mruby-core-ext.rb +1 -20
  75. data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +5 -33
  76. data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +43 -62
  77. data/ext/enterprise_script_service/mruby/lib/mruby/build/load_gems.rb +8 -9
  78. data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +10 -1
  79. data/ext/enterprise_script_service/mruby/lib/mruby/source.rb +3 -1
  80. data/ext/enterprise_script_service/mruby/minirake +2 -621
  81. data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +7 -0
  82. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +0 -31
  83. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +0 -13
  84. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +6 -3
  85. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +19 -17
  86. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +0 -1
  87. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +5 -1
  88. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +5 -1
  89. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +9 -13
  90. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +0 -1
  91. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +6 -2
  92. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +6 -2
  93. data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +6 -1
  94. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +92 -49
  95. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/node.h +1 -0
  96. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +261 -34
  97. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/y.tab.c +13153 -0
  98. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +13 -15
  99. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrbgem.rake +0 -3
  100. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +5 -5
  101. data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/src/exception.c +3 -3
  102. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +2 -213
  103. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +21 -0
  104. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +1 -3
  105. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/README.md +1 -0
  106. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/include/mruby/ext/io.h +40 -8
  107. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +3 -9
  108. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file.rb +33 -33
  109. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file_constants.rb +0 -16
  110. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +7 -12
  111. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +153 -13
  112. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +9 -15
  113. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +335 -138
  114. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +34 -12
  115. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +32 -0
  116. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +60 -44
  117. data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +37 -9
  118. data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/test/math.rb +113 -6
  119. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +37 -28
  120. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +9 -0
  121. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +1 -1
  122. data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +3 -12
  123. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/README.md +1 -0
  124. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/mrbgem.rake +1 -1
  125. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +113 -10
  126. data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +5 -1
  127. data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +2 -2
  128. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +9 -9
  129. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/mrbgem.rake +1 -1
  130. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +2 -1
  131. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/README.md +1 -0
  132. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrbgem.rake +2 -2
  133. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/socket.c +1 -1
  134. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/sockettest.c +3 -2
  135. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +61 -24
  136. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +5 -23
  137. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +3 -3
  138. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +1 -1
  139. data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +1 -1
  140. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +5 -9
  141. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/vformat.c +149 -170
  142. data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +27 -22
  143. data/ext/enterprise_script_service/mruby/mrblib/hash.rb +3 -3
  144. data/ext/enterprise_script_service/mruby/mrblib/mrblib.rake +1 -1
  145. data/ext/enterprise_script_service/mruby/src/array.c +12 -0
  146. data/ext/enterprise_script_service/mruby/src/backtrace.c +22 -65
  147. data/ext/enterprise_script_service/mruby/src/class.c +65 -65
  148. data/ext/enterprise_script_service/mruby/src/codedump.c +4 -0
  149. data/ext/enterprise_script_service/mruby/src/debug.c +8 -5
  150. data/ext/enterprise_script_service/mruby/src/dump.c +3 -65
  151. data/ext/enterprise_script_service/mruby/src/error.c +83 -67
  152. data/ext/enterprise_script_service/mruby/src/etc.c +13 -4
  153. data/ext/enterprise_script_service/mruby/src/fmt_fp.c +98 -22
  154. data/ext/enterprise_script_service/mruby/src/gc.c +15 -277
  155. data/ext/enterprise_script_service/mruby/src/hash.c +6 -7
  156. data/ext/enterprise_script_service/mruby/src/kernel.c +3 -3
  157. data/ext/enterprise_script_service/mruby/src/load.c +68 -46
  158. data/ext/enterprise_script_service/mruby/src/numeric.c +22 -10
  159. data/ext/enterprise_script_service/mruby/src/object.c +12 -4
  160. data/ext/enterprise_script_service/mruby/src/print.c +27 -4
  161. data/ext/enterprise_script_service/mruby/src/proc.c +21 -1
  162. data/ext/enterprise_script_service/mruby/src/state.c +34 -11
  163. data/ext/enterprise_script_service/mruby/src/string.c +137 -85
  164. data/ext/enterprise_script_service/mruby/src/symbol.c +12 -10
  165. data/ext/enterprise_script_service/mruby/src/vm.c +21 -30
  166. data/ext/enterprise_script_service/mruby/tasks/doc.rake +2 -2
  167. data/ext/enterprise_script_service/mruby/tasks/gitlab.rake +20 -23
  168. data/ext/enterprise_script_service/mruby/tasks/libmruby.rake +1 -1
  169. data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +3 -3
  170. data/ext/enterprise_script_service/mruby/tasks/toolchains/android.rake +48 -3
  171. data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +4 -4
  172. data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +6 -6
  173. data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +8 -8
  174. data/ext/enterprise_script_service/mruby/test/assert.rb +5 -4
  175. data/ext/enterprise_script_service/mruby/test/t/ensure.rb +8 -26
  176. data/ext/enterprise_script_service/mruby/test/t/exception.rb +5 -3
  177. data/ext/enterprise_script_service/mruby/test/t/kernel.rb +8 -24
  178. data/ext/enterprise_script_service/mruby/test/t/string.rb +36 -22
  179. data/ext/enterprise_script_service/mruby/test/t/syntax.rb +10 -0
  180. data/ext/enterprise_script_service/mruby/test/t/vformat.rb +48 -82
  181. data/ext/enterprise_script_service/mruby/travis_config.rb +2 -15
  182. data/ext/enterprise_script_service/mruby_config.rb +6 -0
  183. data/ext/enterprise_script_service/msgpack/.github/depends/boost.sh +56 -0
  184. data/ext/enterprise_script_service/msgpack/.github/workflows/coverage.yml +62 -0
  185. data/ext/enterprise_script_service/msgpack/.github/workflows/gha.yml +304 -0
  186. data/ext/enterprise_script_service/msgpack/CHANGELOG.md +23 -0
  187. data/ext/enterprise_script_service/msgpack/CMakeLists.txt +92 -52
  188. data/ext/enterprise_script_service/msgpack/Files.cmake +22 -12
  189. data/ext/enterprise_script_service/msgpack/QUICKSTART-C.md +26 -29
  190. data/ext/enterprise_script_service/msgpack/QUICKSTART-CPP.md +3 -3
  191. data/ext/enterprise_script_service/msgpack/README.md +4 -3
  192. data/ext/enterprise_script_service/msgpack/appveyor.yml +6 -2
  193. data/ext/enterprise_script_service/msgpack/ci/build_cmake.sh +38 -1
  194. data/ext/enterprise_script_service/msgpack/ci/build_cmake_embedded.sh +59 -0
  195. data/ext/enterprise_script_service/msgpack/cmake/CodeCoverage.cmake +55 -0
  196. data/ext/enterprise_script_service/msgpack/codecov.yml +36 -0
  197. data/ext/enterprise_script_service/msgpack/example/CMakeLists.txt +9 -5
  198. data/ext/enterprise_script_service/msgpack/example/boost/CMakeLists.txt +1 -1
  199. data/ext/enterprise_script_service/msgpack/example/boost/msgpack_variant_mapbased.cpp +2 -1
  200. data/ext/enterprise_script_service/msgpack/example/c/CMakeLists.txt +17 -15
  201. data/ext/enterprise_script_service/msgpack/example/c/boundary.c +296 -0
  202. data/ext/enterprise_script_service/msgpack/example/c/jsonconv.c +419 -0
  203. data/ext/enterprise_script_service/msgpack/example/c/simple_c.c +1 -1
  204. data/ext/enterprise_script_service/msgpack/example/cmake/CMakeLists.txt +17 -0
  205. data/ext/enterprise_script_service/msgpack/example/cpp03/CMakeLists.txt +3 -3
  206. data/ext/enterprise_script_service/msgpack/example/cpp03/class_intrusive.cpp +3 -2
  207. data/ext/enterprise_script_service/msgpack/example/cpp03/class_intrusive_map.cpp +2 -1
  208. data/ext/enterprise_script_service/msgpack/example/cpp03/class_non_intrusive.cpp +3 -2
  209. data/ext/enterprise_script_service/msgpack/example/cpp03/map_based_versionup.cpp +2 -1
  210. data/ext/enterprise_script_service/msgpack/example/cpp03/reuse_zone.cpp +3 -2
  211. data/ext/enterprise_script_service/msgpack/example/cpp11/CMakeLists.txt +2 -2
  212. data/ext/enterprise_script_service/msgpack/example/cpp11/container.cpp +18 -9
  213. data/ext/enterprise_script_service/msgpack/example/x3/CMakeLists.txt +2 -2
  214. data/ext/enterprise_script_service/msgpack/include/msgpack/fbuffer.h +1 -1
  215. data/ext/enterprise_script_service/msgpack/include/msgpack/pack.h +24 -1
  216. data/ext/enterprise_script_service/msgpack/include/msgpack/sysdep.h +1 -1
  217. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +5 -4
  218. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/boost/optional.hpp +4 -4
  219. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp +8 -8
  220. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/map.hpp +4 -4
  221. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector.hpp +4 -4
  222. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_char.hpp +8 -8
  223. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp +8 -8
  224. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/wstring.hpp +4 -4
  225. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/unpack.hpp +13 -6
  226. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/zbuffer.hpp +1 -0
  227. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/create_object_visitor.hpp +11 -6
  228. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/parse.hpp +0 -2
  229. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/parse.hpp +0 -2
  230. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/unpack.hpp +6 -6
  231. data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +1 -1
  232. data/ext/enterprise_script_service/msgpack/include/msgpack/vrefbuffer.h +1 -1
  233. data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer.h +5 -4
  234. data/ext/enterprise_script_service/msgpack/make_file_list.sh +38 -11
  235. data/ext/enterprise_script_service/msgpack/msgpack-config.cmake.in +2 -5
  236. data/ext/enterprise_script_service/msgpack/src/objectc.c +1 -1
  237. data/ext/enterprise_script_service/msgpack/src/vrefbuffer.c +6 -0
  238. data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +86 -64
  239. data/ext/enterprise_script_service/msgpack/test/array_ref.cpp +20 -8
  240. data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +14 -5
  241. data/ext/enterprise_script_service/msgpack/test/boost_optional.cpp +14 -5
  242. data/ext/enterprise_script_service/msgpack/test/boost_string_ref.cpp +6 -2
  243. data/ext/enterprise_script_service/msgpack/test/boost_string_view.cpp +6 -1
  244. data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +36 -16
  245. data/ext/enterprise_script_service/msgpack/test/buffer.cpp +4 -47
  246. data/ext/enterprise_script_service/msgpack/test/buffer_c.cpp +148 -0
  247. data/ext/enterprise_script_service/msgpack/test/carray.cpp +20 -8
  248. data/ext/enterprise_script_service/msgpack/test/cases.cpp +8 -4
  249. data/ext/enterprise_script_service/msgpack/test/convert.cpp +8 -4
  250. data/ext/enterprise_script_service/msgpack/test/fixint.cpp +4 -0
  251. data/ext/enterprise_script_service/msgpack/test/fixint_c.cpp +4 -0
  252. data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +4 -0
  253. data/ext/enterprise_script_service/msgpack/test/iterator_cpp11.cpp +4 -0
  254. data/ext/enterprise_script_service/msgpack/test/json.cpp +4 -0
  255. data/ext/enterprise_script_service/msgpack/test/limit.cpp +8 -4
  256. data/ext/enterprise_script_service/msgpack/test/msgpack_basic.cpp +4 -0
  257. data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +201 -0
  258. data/ext/enterprise_script_service/msgpack/test/msgpack_container.cpp +4 -0
  259. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +46 -35
  260. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +26 -11
  261. data/ext/enterprise_script_service/msgpack/test/msgpack_stream.cpp +4 -0
  262. data/ext/enterprise_script_service/msgpack/test/msgpack_tuple.cpp +4 -1
  263. data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +4 -0
  264. data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +4 -0
  265. data/ext/enterprise_script_service/msgpack/test/object.cpp +4 -1
  266. data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +12 -8
  267. data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +30 -26
  268. data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +4 -0
  269. data/ext/enterprise_script_service/msgpack/test/raw.cpp +16 -12
  270. data/ext/enterprise_script_service/msgpack/test/reference.cpp +4 -0
  271. data/ext/enterprise_script_service/msgpack/test/reference_cpp11.cpp +4 -0
  272. data/ext/enterprise_script_service/msgpack/test/reference_wrapper_cpp11.cpp +10 -3
  273. data/ext/enterprise_script_service/msgpack/test/shared_ptr_cpp11.cpp +10 -3
  274. data/ext/enterprise_script_service/msgpack/test/size_equal_only.cpp +14 -5
  275. data/ext/enterprise_script_service/msgpack/test/streaming.cpp +8 -4
  276. data/ext/enterprise_script_service/msgpack/test/streaming_c.cpp +4 -0
  277. data/ext/enterprise_script_service/msgpack/test/unique_ptr_cpp11.cpp +10 -3
  278. data/ext/enterprise_script_service/msgpack/test/user_class.cpp +16 -12
  279. data/ext/enterprise_script_service/msgpack/test/version.cpp +4 -0
  280. data/ext/enterprise_script_service/msgpack/test/visitor.cpp +6 -1
  281. data/ext/enterprise_script_service/msgpack/test/zone.cpp +4 -0
  282. data/lib/script_core/engine.rb +24 -5
  283. data/lib/script_core/executable.rb +4 -3
  284. data/lib/script_core/result.rb +1 -5
  285. data/lib/script_core/service_channel.rb +1 -0
  286. data/lib/script_core/version.rb +1 -1
  287. data/lib/tasks/script_core.rake +3 -1
  288. data/script_core.gemspec +2 -4
  289. data/spec/dummy/app/lib/script_engine.rb +65 -6
  290. data/spec/dummy/app/models/concerns/enum_attribute_localizable.rb +1 -1
  291. data/spec/dummy/bin/bundle +111 -2
  292. data/spec/spec_helper.rb +0 -1
  293. metadata +28 -1084
  294. data/bin/bundler +0 -17
  295. data/bin/pry +0 -17
  296. data/ext/enterprise_script_service/msgpack/.travis.yml +0 -239
  297. data/ext/enterprise_script_service/msgpack/external/boost/predef/.gitattributes +0 -96
  298. data/ext/enterprise_script_service/msgpack/external/boost/predef/.gitignore +0 -3
  299. data/ext/enterprise_script_service/msgpack/external/boost/predef/.project +0 -17
  300. data/ext/enterprise_script_service/msgpack/external/boost/predef/.pydevproject +0 -5
  301. data/ext/enterprise_script_service/msgpack/external/boost/predef/.travis.yml +0 -109
  302. data/ext/enterprise_script_service/msgpack/external/boost/predef/appveyor.yml +0 -149
  303. data/ext/enterprise_script_service/msgpack/external/boost/predef/build.jam +0 -6
  304. data/ext/enterprise_script_service/msgpack/external/boost/predef/check/predef.jam +0 -17
  305. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/.gitignore +0 -1
  306. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/build.jam +0 -100
  307. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/hardware_simd.qbk +0 -89
  308. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/history.qbk +0 -93
  309. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/predef.qbk +0 -734
  310. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/todo.qbk +0 -12
  311. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/detail/endian.hpp +0 -11
  312. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef.h +0 -24
  313. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture.h +0 -33
  314. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/alpha.h +0 -59
  315. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/arm.h +0 -80
  316. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/blackfin.h +0 -46
  317. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/convex.h +0 -65
  318. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/ia64.h +0 -49
  319. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/m68k.h +0 -82
  320. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/mips.h +0 -73
  321. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/parisc.h +0 -64
  322. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/ppc.h +0 -72
  323. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/ptx.h +0 -44
  324. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/pyramid.h +0 -42
  325. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/rs6k.h +0 -56
  326. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/sparc.h +0 -54
  327. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/superh.h +0 -67
  328. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/sys370.h +0 -43
  329. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/sys390.h +0 -43
  330. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/x86.h +0 -38
  331. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/x86/32.h +0 -87
  332. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/x86/64.h +0 -50
  333. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/z.h +0 -42
  334. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler.h +0 -44
  335. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/borland.h +0 -63
  336. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/clang.h +0 -56
  337. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/comeau.h +0 -61
  338. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/compaq.h +0 -66
  339. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/diab.h +0 -56
  340. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/digitalmars.h +0 -56
  341. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/dignus.h +0 -56
  342. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/edg.h +0 -56
  343. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/ekopath.h +0 -57
  344. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/gcc.h +0 -68
  345. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/gcc_xml.h +0 -53
  346. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/greenhills.h +0 -66
  347. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/hp_acc.h +0 -61
  348. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/iar.h +0 -56
  349. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/ibm.h +0 -72
  350. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/intel.h +0 -79
  351. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/kai.h +0 -56
  352. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/llvm.h +0 -57
  353. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/metaware.h +0 -53
  354. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/metrowerks.h +0 -77
  355. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/microtec.h +0 -53
  356. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/mpw.h +0 -63
  357. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/nvcc.h +0 -60
  358. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/palm.h +0 -56
  359. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/pgi.h +0 -60
  360. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/sgi_mipspro.h +0 -66
  361. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/sunpro.h +0 -76
  362. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/tendra.h +0 -53
  363. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/visualc.h +0 -105
  364. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/watcom.h +0 -56
  365. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/_cassert.h +0 -17
  366. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/_exception.h +0 -15
  367. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/comp_detected.h +0 -10
  368. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/endian_compat.h +0 -26
  369. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/os_detected.h +0 -10
  370. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/platform_detected.h +0 -10
  371. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/test.h +0 -17
  372. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/test_def.h +0 -71
  373. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware.h +0 -16
  374. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd.h +0 -119
  375. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/arm.h +0 -59
  376. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/arm/versions.h +0 -32
  377. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/ppc.h +0 -69
  378. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/ppc/versions.h +0 -51
  379. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86.h +0 -123
  380. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86/versions.h +0 -129
  381. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86_amd.h +0 -87
  382. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86_amd/versions.h +0 -51
  383. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language.h +0 -18
  384. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/cuda.h +0 -52
  385. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/objc.h +0 -42
  386. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/stdc.h +0 -53
  387. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/stdcpp.h +0 -121
  388. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library.h +0 -16
  389. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c.h +0 -21
  390. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/_prefix.h +0 -13
  391. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/cloudabi.h +0 -53
  392. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/gnu.h +0 -61
  393. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/uc.h +0 -47
  394. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/vms.h +0 -47
  395. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/zos.h +0 -56
  396. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std.h +0 -25
  397. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/_prefix.h +0 -23
  398. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/cxx.h +0 -46
  399. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/dinkumware.h +0 -52
  400. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/libcomo.h +0 -47
  401. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/modena.h +0 -45
  402. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/msl.h +0 -53
  403. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/roguewave.h +0 -56
  404. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/sgi.h +0 -51
  405. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/stdcpp3.h +0 -53
  406. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/stlport.h +0 -59
  407. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/vacpp.h +0 -44
  408. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/make.h +0 -97
  409. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os.h +0 -33
  410. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/aix.h +0 -66
  411. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/amigaos.h +0 -46
  412. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/android.h +0 -45
  413. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/beos.h +0 -45
  414. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd.h +0 -103
  415. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/bsdi.h +0 -48
  416. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/dragonfly.h +0 -50
  417. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/free.h +0 -67
  418. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/net.h +0 -84
  419. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/open.h +0 -251
  420. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/cygwin.h +0 -45
  421. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/haiku.h +0 -46
  422. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/hpux.h +0 -47
  423. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/ios.h +0 -51
  424. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/irix.h +0 -46
  425. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/linux.h +0 -46
  426. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/macos.h +0 -65
  427. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/os400.h +0 -45
  428. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/qnxnto.h +0 -59
  429. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/solaris.h +0 -46
  430. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/unix.h +0 -76
  431. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/vms.h +0 -52
  432. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/windows.h +0 -51
  433. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/other.h +0 -16
  434. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/other/endian.h +0 -203
  435. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/other/workaround.h +0 -87
  436. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform.h +0 -28
  437. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/cloudabi.h +0 -43
  438. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/ios.h +0 -58
  439. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/mingw.h +0 -69
  440. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/mingw32.h +0 -63
  441. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/mingw64.h +0 -63
  442. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_desktop.h +0 -51
  443. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_phone.h +0 -48
  444. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_runtime.h +0 -53
  445. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_server.h +0 -47
  446. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_store.h +0 -50
  447. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_system.h +0 -47
  448. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_uwp.h +0 -60
  449. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/version.h +0 -15
  450. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/version_number.h +0 -72
  451. data/ext/enterprise_script_service/msgpack/external/boost/predef/index.html +0 -14
  452. data/ext/enterprise_script_service/msgpack/external/boost/predef/meta/libraries.json +0 -14
  453. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/.gitignore +0 -3
  454. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/build.jam +0 -80
  455. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/check_value.cpp +0 -26
  456. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_c.c +0 -7
  457. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_cpp.cpp +0 -7
  458. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_objc.m +0 -7
  459. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_objcpp.mm +0 -7
  460. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/macos_endian.c +0 -21
  461. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/macos_vs_bsd.c +0 -19
  462. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/make.cpp +0 -94
  463. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/platform_windows.cpp +0 -177
  464. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/predef_info.h +0 -46
  465. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/tested_at.cpp +0 -62
  466. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/tested_at_outdated.cpp +0 -18
  467. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/version.cpp +0 -83
  468. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/workaround.cpp +0 -62
  469. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/workaround_strict_config.cpp +0 -17
  470. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/build.jam +0 -9
  471. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef.jam +0 -202
  472. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check.h +0 -98
  473. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_c.c +0 -7
  474. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_cpp.cpp +0 -7
  475. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_objc.m +0 -7
  476. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_objcpp.mm +0 -7
  477. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc.h +0 -19
  478. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_c.c +0 -7
  479. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_cpp.cpp +0 -7
  480. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_objc.m +0 -7
  481. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_objcpp.mm +0 -7
  482. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/ci/build_log.py +0 -428
  483. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/ci/common.py +0 -878
  484. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/ci/library_test.py +0 -198
  485. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/.gitattributes +0 -96
  486. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/.travis.yml +0 -39
  487. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/appveyor.yml +0 -36
  488. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/AppendixA-AnIntroductiontoPreprocessorMetaprogramming.html +0 -2494
  489. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/acknowledgements.html +0 -58
  490. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/bibliography.html +0 -58
  491. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/contents.html +0 -38
  492. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data.html +0 -27
  493. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/arrays.html +0 -55
  494. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/lists.html +0 -42
  495. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/sequences.html +0 -60
  496. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/tuples.html +0 -42
  497. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples.html +0 -27
  498. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/array_arithmetic.c +0 -196
  499. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/catch_builtin.cpp +0 -51
  500. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/delay.c +0 -95
  501. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/duffs_device.c +0 -61
  502. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/is_integral.cpp +0 -49
  503. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/linear_fib.c +0 -91
  504. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers.html +0 -249
  505. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic.html +0 -36
  506. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/add.html +0 -31
  507. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/dec.html +0 -30
  508. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/div.html +0 -31
  509. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/inc.html +0 -30
  510. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/mod.html +0 -31
  511. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/mul.html +0 -31
  512. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/sub.html +0 -31
  513. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array.html +0 -43
  514. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/data.html +0 -30
  515. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/elem.html +0 -30
  516. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/enum.html +0 -24
  517. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/insert.html +0 -31
  518. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/pop_back.html +0 -31
  519. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/pop_front.html +0 -31
  520. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/push_back.html +0 -30
  521. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/push_front.html +0 -30
  522. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/remove.html +0 -31
  523. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/replace.html +0 -31
  524. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/reverse.html +0 -30
  525. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/size.html +0 -30
  526. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/to_list.html +0 -24
  527. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/to_seq.html +0 -24
  528. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/to_tuple.html +0 -24
  529. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/assert_msg.html +0 -31
  530. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/cat.html +0 -30
  531. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comma.html +0 -31
  532. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comma_if.html +0 -31
  533. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison.html +0 -35
  534. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/equal.html +0 -31
  535. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/greater.html +0 -31
  536. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/greater_equal.html +0 -31
  537. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/less.html +0 -31
  538. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/less_equal.html +0 -31
  539. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/not_equal.html +0 -31
  540. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/config/limits.html +0 -44
  541. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/config/variadics.html +0 -32
  542. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control.html +0 -35
  543. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/deduce_d.html +0 -30
  544. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/expr_if.html +0 -30
  545. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/expr_iif.html +0 -30
  546. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/if.html +0 -30
  547. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/iif.html +0 -30
  548. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/while.html +0 -31
  549. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/debug.html +0 -31
  550. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/debug/assert.html +0 -31
  551. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/debug/line.html +0 -30
  552. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/dec.html +0 -31
  553. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/empty.html +0 -31
  554. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum.html +0 -31
  555. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum_params.html +0 -31
  556. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum_shifted.html +0 -31
  557. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum_shifted_params.html +0 -31
  558. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/epwad.html +0 -31
  559. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/epwd.html +0 -31
  560. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/expand.html +0 -31
  561. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/expr_if.html +0 -31
  562. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities.html +0 -34
  563. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/apply.html +0 -30
  564. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/empty.html +0 -30
  565. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/expand.html +0 -30
  566. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/identity.html +0 -32
  567. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/intercept.html +0 -30
  568. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/overload.html +0 -28
  569. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/for.html +0 -31
  570. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/identity.html +0 -31
  571. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/if.html +0 -31
  572. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/inc.html +0 -31
  573. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iterate.html +0 -31
  574. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration.html +0 -32
  575. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration/iterate.html +0 -43
  576. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration/local.html +0 -30
  577. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration/self.html +0 -30
  578. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/library.html +0 -26
  579. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/limits.html +0 -31
  580. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list.html +0 -47
  581. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/adt.html +0 -35
  582. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/append.html +0 -31
  583. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/at.html +0 -31
  584. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/cat.html +0 -31
  585. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/enum.html +0 -31
  586. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/filter.html +0 -31
  587. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/first_n.html +0 -31
  588. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/fold_left.html +0 -34
  589. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/fold_right.html +0 -34
  590. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/for_each.html +0 -31
  591. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/for_each_i.html +0 -31
  592. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/for_each_product.html +0 -31
  593. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/rest_n.html +0 -31
  594. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/reverse.html +0 -31
  595. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/size.html +0 -31
  596. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/to_array.html +0 -29
  597. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/to_seq.html +0 -25
  598. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/to_tuple.html +0 -31
  599. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/transform.html +0 -31
  600. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical.html +0 -40
  601. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/and.html +0 -30
  602. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitand.html +0 -30
  603. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitnor.html +0 -30
  604. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitor.html +0 -30
  605. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitxor.html +0 -30
  606. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bool.html +0 -30
  607. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/compl.html +0 -30
  608. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/nor.html +0 -30
  609. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/not.html +0 -30
  610. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/or.html +0 -30
  611. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/xor.html +0 -30
  612. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/max.html +0 -31
  613. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/min.html +0 -31
  614. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/preprocessor.html +0 -26
  615. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation.html +0 -33
  616. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/comma.html +0 -30
  617. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/comma_if.html +0 -30
  618. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/is_begin_parens.html +0 -26
  619. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/paren.html +0 -31
  620. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/paren_if.html +0 -31
  621. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/remove_parens.html +0 -26
  622. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat.html +0 -31
  623. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_2nd.html +0 -31
  624. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_3rd.html +0 -31
  625. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_from_to.html +0 -31
  626. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_from_to_2nd.html +0 -31
  627. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_from_to_3rd.html +0 -31
  628. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition.html +0 -44
  629. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/deduce_r.html +0 -30
  630. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/deduce_z.html +0 -30
  631. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum.html +0 -31
  632. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_binary_params.html +0 -31
  633. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_params.html +0 -31
  634. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_shifted.html +0 -31
  635. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_shifted_params.html +0 -31
  636. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_trailing.html +0 -31
  637. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_trailing_params.html +0 -31
  638. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/epwad.html +0 -30
  639. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/epwd.html +0 -30
  640. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/esbp.html +0 -31
  641. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/etbp.html +0 -31
  642. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/for.html +0 -31
  643. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/repeat.html +0 -34
  644. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/repeat_from_to.html +0 -36
  645. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/selection.html +0 -31
  646. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/selection/max.html +0 -31
  647. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/selection/min.html +0 -31
  648. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq.html +0 -86
  649. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/cat.html +0 -38
  650. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/elem.html +0 -35
  651. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/enum.html +0 -35
  652. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/filter.html +0 -37
  653. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/first_n.html +0 -36
  654. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/fold_left.html +0 -38
  655. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/fold_right.html +0 -38
  656. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/for_each.html +0 -38
  657. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/for_each_i.html +0 -38
  658. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/for_each_product.html +0 -38
  659. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/insert.html +0 -35
  660. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/pop_back.html +0 -36
  661. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/pop_front.html +0 -36
  662. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/push_back.html +0 -35
  663. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/push_front.html +0 -35
  664. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/remove.html +0 -35
  665. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/replace.html +0 -35
  666. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/rest_n.html +0 -36
  667. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/reverse.html +0 -37
  668. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/seq.html +0 -39
  669. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/size.html +0 -35
  670. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/subseq.html +0 -35
  671. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/to_array.html +0 -36
  672. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/to_list.html +0 -30
  673. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/to_tuple.html +0 -36
  674. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/transform.html +0 -37
  675. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/variadic_seq_to_seq.html +0 -34
  676. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/slot.html +0 -30
  677. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/slot/counter.html +0 -31
  678. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/slot/slot.html +0 -31
  679. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/stringize.html +0 -30
  680. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple.html +0 -59
  681. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/eat.html +0 -25
  682. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/elem.html +0 -25
  683. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/enum.html +0 -25
  684. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/insert.html +0 -27
  685. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/pop_back.html +0 -28
  686. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/pop_front.html +0 -28
  687. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/push_back.html +0 -26
  688. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/push_front.html +0 -26
  689. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/rem.html +0 -27
  690. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/remove.html +0 -27
  691. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/replace.html +0 -28
  692. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/reverse.html +0 -25
  693. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/size.html +0 -25
  694. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/to_array.html +0 -25
  695. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/to_list.html +0 -25
  696. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/to_seq.html +0 -31
  697. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic.html +0 -33
  698. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/elem.html +0 -29
  699. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/size.html +0 -25
  700. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_array.html +0 -25
  701. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_list.html +0 -25
  702. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_seq.html +0 -30
  703. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_tuple.html +0 -31
  704. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/while.html +0 -31
  705. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/wstringize.html +0 -30
  706. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/index.html +0 -23
  707. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/miscellanea.html +0 -24
  708. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref.html +0 -319
  709. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/add.html +0 -68
  710. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/add_d.html +0 -90
  711. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/and.html +0 -64
  712. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/apply.html +0 -64
  713. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_data.html +0 -49
  714. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_elem.html +0 -51
  715. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_enum.html +0 -37
  716. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_insert.html +0 -71
  717. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_insert_d.html +0 -63
  718. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_back.html +0 -59
  719. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_back_z.html +0 -51
  720. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_front.html +0 -51
  721. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_front_z.html +0 -51
  722. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_push_back.html +0 -49
  723. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_push_front.html +0 -49
  724. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_remove.html +0 -60
  725. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_remove_d.html +0 -51
  726. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_replace.html +0 -64
  727. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_replace_d.html +0 -55
  728. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_reverse.html +0 -45
  729. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_size.html +0 -45
  730. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_to_list.html +0 -41
  731. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_to_seq.html +0 -37
  732. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_to_tuple.html +0 -39
  733. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/assert.html +0 -114
  734. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/assert_msg.html +0 -66
  735. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/assign_slot.html +0 -61
  736. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitand.html +0 -65
  737. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitnor.html +0 -65
  738. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitor.html +0 -65
  739. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitxor.html +0 -66
  740. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bool.html +0 -54
  741. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/cat.html +0 -57
  742. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/comma.html +0 -43
  743. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/comma_if.html +0 -60
  744. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/compl.html +0 -58
  745. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/config_extended_line_info.html +0 -54
  746. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/counter.html +0 -58
  747. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/dec.html +0 -54
  748. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/deduce_d.html +0 -82
  749. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/deduce_r.html +0 -48
  750. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/deduce_z.html +0 -48
  751. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/div.html +0 -63
  752. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/div_d.html +0 -85
  753. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/empty.html +0 -47
  754. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum.html +0 -80
  755. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_binary_params.html +0 -76
  756. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_binary_params_z.html +0 -93
  757. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params.html +0 -69
  758. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params_with_a_default.html +0 -83
  759. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params_with_defaults.html +0 -84
  760. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params_z.html +0 -82
  761. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted.html +0 -82
  762. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted_params.html +0 -73
  763. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted_params_z.html +0 -79
  764. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted_z.html +0 -93
  765. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing.html +0 -83
  766. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing_params.html +0 -66
  767. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing_params_z.html +0 -81
  768. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing_z.html +0 -96
  769. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_z.html +0 -96
  770. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/equal.html +0 -64
  771. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/equal_d.html +0 -69
  772. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/esbp.html +0 -65
  773. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/esbpz.html +0 -67
  774. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/etbp.html +0 -83
  775. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/etbpz.html +0 -67
  776. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/expand.html +0 -67
  777. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/expr_if.html +0 -70
  778. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/expr_iif.html +0 -67
  779. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/filename_x.html +0 -52
  780. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/for.html +0 -105
  781. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/for_r.html +0 -148
  782. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/for_r_macros.html +0 -44
  783. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_finish.html +0 -42
  784. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_flags.html +0 -42
  785. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_iteration.html +0 -73
  786. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_start.html +0 -42
  787. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater.html +0 -65
  788. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater_d.html +0 -69
  789. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater_equal.html +0 -65
  790. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater_equal_d.html +0 -69
  791. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/identity.html +0 -57
  792. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/identity_n.html +0 -58
  793. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/if.html +0 -63
  794. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iif.html +0 -66
  795. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/inc.html +0 -54
  796. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/include_self.html +0 -101
  797. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/indirect_self.html +0 -45
  798. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/intercept.html +0 -51
  799. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/is_begin_parens.html +0 -47
  800. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/is_iterating.html +0 -38
  801. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/is_selfish.html +0 -38
  802. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iterate.html +0 -83
  803. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration.html +0 -55
  804. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_depth.html +0 -73
  805. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_finish.html +0 -57
  806. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_flags.html +0 -68
  807. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_limits.html +0 -59
  808. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_params_x.html +0 -77
  809. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_start.html +0 -57
  810. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less.html +0 -65
  811. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less_d.html +0 -70
  812. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less_equal.html +0 -65
  813. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less_equal_d.html +0 -70
  814. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_dim.html +0 -35
  815. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_for.html +0 -34
  816. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_iteration.html +0 -34
  817. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_iteration_dim.html +0 -34
  818. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_mag.html +0 -34
  819. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_repeat.html +0 -39
  820. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_seq.html +0 -41
  821. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_slot_count.html +0 -34
  822. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_slot_sig.html +0 -34
  823. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_tuple.html +0 -33
  824. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_variadic.html +0 -24
  825. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_while.html +0 -34
  826. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/line.html +0 -112
  827. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_append.html +0 -69
  828. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_append_d.html +0 -96
  829. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_at.html +0 -61
  830. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_at_d.html +0 -63
  831. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_cat.html +0 -58
  832. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_cat_d.html +0 -67
  833. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_cons.html +0 -87
  834. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_enum.html +0 -62
  835. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_enum_r.html +0 -69
  836. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_filter.html +0 -76
  837. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_filter_d.html +0 -86
  838. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_first.html +0 -62
  839. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_first_n.html +0 -62
  840. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_first_n_d.html +0 -71
  841. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left.html +0 -75
  842. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_2nd.html +0 -75
  843. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_2nd_d.html +0 -86
  844. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_d.html +0 -81
  845. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_d_old.html +0 -86
  846. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right.html +0 -79
  847. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_2nd.html +0 -79
  848. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_2nd_d.html +0 -86
  849. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_d.html +0 -81
  850. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_d_old.html +0 -90
  851. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each.html +0 -75
  852. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_i.html +0 -75
  853. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_i_r.html +0 -82
  854. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_product.html +0 -86
  855. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_product_r.html +0 -118
  856. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_r.html +0 -81
  857. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_is_cons.html +0 -51
  858. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_is_nil.html +0 -51
  859. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_nil.html +0 -68
  860. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_rest.html +0 -62
  861. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_rest_n.html +0 -62
  862. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_rest_n_d.html +0 -71
  863. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_reverse.html +0 -55
  864. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_reverse_d.html +0 -63
  865. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_size.html +0 -55
  866. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_size_d.html +0 -67
  867. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_array.html +0 -47
  868. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_array_d.html +0 -34
  869. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_seq.html +0 -44
  870. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_seq_r.html +0 -32
  871. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_tuple.html +0 -55
  872. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_tuple_r.html +0 -62
  873. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_transform.html +0 -78
  874. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_transform_d.html +0 -86
  875. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/local_iterate.html +0 -62
  876. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/local_limits.html +0 -80
  877. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/local_macro.html +0 -64
  878. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/lparen.html +0 -52
  879. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/lparen_if.html +0 -61
  880. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/max.html +0 -64
  881. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/max_d.html +0 -70
  882. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/min.html +0 -64
  883. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/min_d.html +0 -70
  884. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mod.html +0 -63
  885. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mod_d.html +0 -75
  886. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mul.html +0 -68
  887. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mul_d.html +0 -91
  888. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/nil.html +0 -41
  889. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/nor.html +0 -64
  890. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/not.html +0 -59
  891. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/not_equal.html +0 -64
  892. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/not_equal_d.html +0 -69
  893. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/or.html +0 -64
  894. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/overload.html +0 -58
  895. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_finish.html +0 -46
  896. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_flags.html +0 -46
  897. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_iteration.html +0 -101
  898. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_start.html +0 -46
  899. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/remove_parens.html +0 -44
  900. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat.html +0 -80
  901. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_1st.html +0 -82
  902. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_2nd.html +0 -82
  903. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_3rd.html +0 -82
  904. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to.html +0 -102
  905. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_1st.html +0 -91
  906. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_2nd.html +0 -91
  907. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_3rd.html +0 -91
  908. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_d.html +0 -83
  909. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_d_z.html +0 -84
  910. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_z.html +0 -105
  911. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_z.html +0 -92
  912. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_z_macros.html +0 -45
  913. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/rparen.html +0 -53
  914. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/rparen_if.html +0 -61
  915. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_cat.html +0 -64
  916. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_cat_s.html +0 -60
  917. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_elem.html +0 -59
  918. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_enum.html +0 -66
  919. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_filter.html +0 -93
  920. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_filter_s.html +0 -79
  921. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_first_n.html +0 -67
  922. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_left.html +0 -90
  923. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_left_s.html +0 -96
  924. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_right.html +0 -92
  925. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_right_s.html +0 -97
  926. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each.html +0 -90
  927. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_i.html +0 -91
  928. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_i_r.html +0 -78
  929. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_product.html +0 -100
  930. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_product_r.html +0 -81
  931. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_r.html +0 -77
  932. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_head.html +0 -63
  933. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_insert.html +0 -70
  934. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_nil.html +0 -81
  935. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_pop_back.html +0 -68
  936. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_pop_front.html +0 -68
  937. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_push_back.html +0 -76
  938. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_push_front.html +0 -78
  939. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_remove.html +0 -66
  940. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_replace.html +0 -71
  941. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_rest_n.html +0 -55
  942. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_reverse.html +0 -68
  943. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_reverse_s.html +0 -55
  944. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_size.html +0 -55
  945. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_subseq.html +0 -69
  946. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_tail.html +0 -63
  947. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_to_array.html +0 -55
  948. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_to_list.html +0 -34
  949. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_to_tuple.html +0 -55
  950. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_transform.html +0 -93
  951. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_transform_s.html +0 -79
  952. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/slot.html +0 -60
  953. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/stringize.html +0 -50
  954. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/sub.html +0 -63
  955. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/sub_d.html +0 -85
  956. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_eat.html +0 -58
  957. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_elem.html +0 -65
  958. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_enum.html +0 -55
  959. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_insert.html +0 -54
  960. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_insert_d.html +0 -46
  961. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_back.html +0 -48
  962. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_back_z.html +0 -40
  963. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_front.html +0 -47
  964. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_front_z.html +0 -40
  965. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_push_back.html +0 -39
  966. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_push_front.html +0 -39
  967. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_rem.html +0 -60
  968. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_rem_ctor.html +0 -61
  969. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_remove.html +0 -50
  970. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_remove_d.html +0 -41
  971. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_replace.html +0 -51
  972. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_replace_d.html +0 -42
  973. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_reverse.html +0 -61
  974. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_size.html +0 -32
  975. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_to_array.html +0 -50
  976. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_to_list.html +0 -60
  977. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_to_seq.html +0 -51
  978. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/update_counter.html +0 -34
  979. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/value.html +0 -37
  980. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_elem.html +0 -42
  981. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_seq_to_seq.html +0 -35
  982. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_size.html +0 -33
  983. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_array.html +0 -32
  984. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_list.html +0 -31
  985. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_seq.html +0 -32
  986. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_tuple.html +0 -32
  987. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadics.html +0 -30
  988. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/while.html +0 -116
  989. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/while_d.html +0 -117
  990. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/while_d_macros.html +0 -89
  991. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/wstringize.html +0 -49
  992. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/xor.html +0 -64
  993. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/styles.css +0 -87
  994. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/syntax.html +0 -307
  995. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/terms.html +0 -23
  996. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/terms/evaluated.html +0 -27
  997. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/terms/named_external.html +0 -25
  998. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/title.html +0 -25
  999. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/top.html +0 -32
  1000. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics.html +0 -27
  1001. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/evaluated_slots.html +0 -157
  1002. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/file_iteration.html +0 -1044
  1003. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/incompatible.html +0 -140
  1004. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/local_iteration.html +0 -156
  1005. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/motivation.html +0 -119
  1006. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/problems.html +0 -135
  1007. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/reentrancy.html +0 -298
  1008. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/techniques.html +0 -350
  1009. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/variadic_macros.html +0 -262
  1010. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor.hpp +0 -19
  1011. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic.hpp +0 -25
  1012. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/add.hpp +0 -51
  1013. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/dec.hpp +0 -289
  1014. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/detail/div_base.hpp +0 -61
  1015. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/div.hpp +0 -39
  1016. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/inc.hpp +0 -288
  1017. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/mod.hpp +0 -39
  1018. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/mul.hpp +0 -53
  1019. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/sub.hpp +0 -50
  1020. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array.hpp +0 -32
  1021. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/data.hpp +0 -28
  1022. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/detail/get_data.hpp +0 -55
  1023. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/elem.hpp +0 -29
  1024. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/enum.hpp +0 -33
  1025. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/insert.hpp +0 -55
  1026. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/pop_back.hpp +0 -37
  1027. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/pop_front.hpp +0 -38
  1028. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/push_back.hpp +0 -35
  1029. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/push_front.hpp +0 -35
  1030. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/remove.hpp +0 -54
  1031. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/replace.hpp +0 -49
  1032. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/reverse.hpp +0 -29
  1033. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/size.hpp +0 -28
  1034. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/to_list.hpp +0 -47
  1035. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/to_seq.hpp +0 -46
  1036. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/to_tuple.hpp +0 -33
  1037. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/assert_msg.hpp +0 -17
  1038. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/cat.hpp +0 -35
  1039. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comma.hpp +0 -17
  1040. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comma_if.hpp +0 -17
  1041. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison.hpp +0 -24
  1042. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/equal.hpp +0 -34
  1043. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/greater.hpp +0 -38
  1044. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/greater_equal.hpp +0 -38
  1045. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/less.hpp +0 -46
  1046. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/less_equal.hpp +0 -39
  1047. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/not_equal.hpp +0 -814
  1048. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/config/config.hpp +0 -106
  1049. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/config/limits.hpp +0 -30
  1050. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control.hpp +0 -22
  1051. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/deduce_d.hpp +0 -22
  1052. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/dmc/while.hpp +0 -536
  1053. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/edg/while.hpp +0 -534
  1054. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/msvc/while.hpp +0 -277
  1055. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/while.hpp +0 -536
  1056. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/expr_if.hpp +0 -30
  1057. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/expr_iif.hpp +0 -31
  1058. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/if.hpp +0 -30
  1059. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/iif.hpp +0 -34
  1060. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/while.hpp +0 -312
  1061. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug.hpp +0 -18
  1062. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug/assert.hpp +0 -44
  1063. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug/error.hpp +0 -33
  1064. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug/line.hpp +0 -35
  1065. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/dec.hpp +0 -17
  1066. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/auto_rec.hpp +0 -293
  1067. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/check.hpp +0 -48
  1068. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/dmc/auto_rec.hpp +0 -286
  1069. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/is_binary.hpp +0 -30
  1070. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/is_nullary.hpp +0 -30
  1071. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/is_unary.hpp +0 -30
  1072. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/null.hpp +0 -17
  1073. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/split.hpp +0 -35
  1074. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/empty.hpp +0 -17
  1075. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum.hpp +0 -17
  1076. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_params.hpp +0 -17
  1077. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_params_with_a_default.hpp +0 -17
  1078. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_params_with_defaults.hpp +0 -17
  1079. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_shifted.hpp +0 -17
  1080. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_shifted_params.hpp +0 -17
  1081. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/expand.hpp +0 -17
  1082. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/expr_if.hpp +0 -17
  1083. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities.hpp +0 -23
  1084. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/apply.hpp +0 -34
  1085. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/detail/is_empty.hpp +0 -55
  1086. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/empty.hpp +0 -23
  1087. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/expand.hpp +0 -28
  1088. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/identity.hpp +0 -27
  1089. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/intercept.hpp +0 -277
  1090. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_1.hpp +0 -23
  1091. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_empty.hpp +0 -56
  1092. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_empty_or_1.hpp +0 -31
  1093. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_empty_variadic.hpp +0 -57
  1094. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/overload.hpp +0 -25
  1095. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/for.hpp +0 -17
  1096. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/identity.hpp +0 -17
  1097. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/if.hpp +0 -17
  1098. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/inc.hpp +0 -17
  1099. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iterate.hpp +0 -17
  1100. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration.hpp +0 -19
  1101. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower1.hpp +0 -99
  1102. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower2.hpp +0 -99
  1103. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower3.hpp +0 -99
  1104. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower4.hpp +0 -99
  1105. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower5.hpp +0 -99
  1106. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper1.hpp +0 -99
  1107. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper2.hpp +0 -99
  1108. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper3.hpp +0 -99
  1109. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper4.hpp +0 -99
  1110. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper5.hpp +0 -99
  1111. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/finish.hpp +0 -99
  1112. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward1.hpp +0 -1342
  1113. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward2.hpp +0 -1338
  1114. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward3.hpp +0 -1338
  1115. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward4.hpp +0 -1338
  1116. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward5.hpp +0 -1338
  1117. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse1.hpp +0 -1296
  1118. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse2.hpp +0 -1296
  1119. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse3.hpp +0 -1296
  1120. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse4.hpp +0 -1296
  1121. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse5.hpp +0 -1296
  1122. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/local.hpp +0 -812
  1123. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/rlocal.hpp +0 -782
  1124. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/self.hpp +0 -21
  1125. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/start.hpp +0 -99
  1126. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/iterate.hpp +0 -82
  1127. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/local.hpp +0 -26
  1128. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/self.hpp +0 -19
  1129. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/library.hpp +0 -37
  1130. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/limits.hpp +0 -17
  1131. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list.hpp +0 -37
  1132. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/adt.hpp +0 -73
  1133. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/append.hpp +0 -40
  1134. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/at.hpp +0 -39
  1135. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/cat.hpp +0 -42
  1136. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/dmc/fold_left.hpp +0 -279
  1137. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/edg/fold_left.hpp +0 -536
  1138. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/edg/fold_right.hpp +0 -794
  1139. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/fold_left.hpp +0 -279
  1140. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/fold_right.hpp +0 -277
  1141. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/enum.hpp +0 -41
  1142. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/filter.hpp +0 -54
  1143. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/first_n.hpp +0 -58
  1144. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/fold_left.hpp +0 -303
  1145. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/fold_right.hpp +0 -40
  1146. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/for_each.hpp +0 -49
  1147. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/for_each_i.hpp +0 -65
  1148. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/for_each_product.hpp +0 -141
  1149. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/rest_n.hpp +0 -55
  1150. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/reverse.hpp +0 -40
  1151. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/size.hpp +0 -58
  1152. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/to_array.hpp +0 -155
  1153. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/to_seq.hpp +0 -32
  1154. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/to_tuple.hpp +0 -61
  1155. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/transform.hpp +0 -49
  1156. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical.hpp +0 -29
  1157. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/and.hpp +0 -30
  1158. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitand.hpp +0 -38
  1159. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitnor.hpp +0 -38
  1160. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitor.hpp +0 -38
  1161. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitxor.hpp +0 -38
  1162. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bool.hpp +0 -288
  1163. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/compl.hpp +0 -36
  1164. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/nor.hpp +0 -30
  1165. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/not.hpp +0 -30
  1166. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/or.hpp +0 -30
  1167. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/xor.hpp +0 -30
  1168. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/max.hpp +0 -17
  1169. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/min.hpp +0 -17
  1170. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation.hpp +0 -22
  1171. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/comma.hpp +0 -21
  1172. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/comma_if.hpp +0 -31
  1173. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp +0 -48
  1174. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/is_begin_parens.hpp +0 -51
  1175. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/paren.hpp +0 -23
  1176. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/paren_if.hpp +0 -38
  1177. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/remove_parens.hpp +0 -39
  1178. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat.hpp +0 -17
  1179. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_2nd.hpp +0 -17
  1180. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_3rd.hpp +0 -17
  1181. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_from_to.hpp +0 -17
  1182. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_from_to_2nd.hpp +0 -17
  1183. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_from_to_3rd.hpp +0 -17
  1184. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition.hpp +0 -32
  1185. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/deduce_r.hpp +0 -22
  1186. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/deduce_z.hpp +0 -22
  1187. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/dmc/for.hpp +0 -536
  1188. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/edg/for.hpp +0 -534
  1189. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/for.hpp +0 -536
  1190. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/msvc/for.hpp +0 -277
  1191. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum.hpp +0 -66
  1192. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_binary_params.hpp +0 -54
  1193. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_params.hpp +0 -41
  1194. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp +0 -25
  1195. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_params_with_defaults.hpp +0 -24
  1196. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_shifted.hpp +0 -68
  1197. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_shifted_binary_params.hpp +0 -51
  1198. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_shifted_params.hpp +0 -44
  1199. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_trailing.hpp +0 -63
  1200. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_trailing_binary_params.hpp +0 -53
  1201. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_trailing_params.hpp +0 -38
  1202. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/for.hpp +0 -324
  1203. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/repeat.hpp +0 -825
  1204. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/repeat_from_to.hpp +0 -87
  1205. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/selection.hpp +0 -18
  1206. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/selection/max.hpp +0 -39
  1207. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/selection/min.hpp +0 -39
  1208. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq.hpp +0 -44
  1209. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/cat.hpp +0 -49
  1210. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/binary_transform.hpp +0 -47
  1211. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/is_empty.hpp +0 -49
  1212. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/split.hpp +0 -284
  1213. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/to_list_msvc.hpp +0 -55
  1214. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/elem.hpp +0 -304
  1215. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/enum.hpp +0 -288
  1216. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/filter.hpp +0 -54
  1217. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/first_n.hpp +0 -30
  1218. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/fold_left.hpp +0 -1070
  1219. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/fold_right.hpp +0 -288
  1220. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/for_each.hpp +0 -107
  1221. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/for_each_i.hpp +0 -109
  1222. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/for_each_product.hpp +0 -126
  1223. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/insert.hpp +0 -28
  1224. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/pop_back.hpp +0 -29
  1225. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/pop_front.hpp +0 -27
  1226. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/push_back.hpp +0 -19
  1227. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/push_front.hpp +0 -19
  1228. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/remove.hpp +0 -29
  1229. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/replace.hpp +0 -45
  1230. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/rest_n.hpp +0 -46
  1231. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/reverse.hpp +0 -39
  1232. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/seq.hpp +0 -44
  1233. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/size.hpp +0 -548
  1234. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/subseq.hpp +0 -28
  1235. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/to_array.hpp +0 -28
  1236. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/to_list.hpp +0 -41
  1237. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/to_tuple.hpp +0 -27
  1238. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/transform.hpp +0 -48
  1239. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/variadic_seq_to_seq.hpp +0 -28
  1240. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot.hpp +0 -17
  1241. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/counter.hpp +0 -25
  1242. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/counter.hpp +0 -269
  1243. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/def.hpp +0 -49
  1244. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/shared.hpp +0 -247
  1245. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot1.hpp +0 -267
  1246. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot2.hpp +0 -267
  1247. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot3.hpp +0 -267
  1248. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot4.hpp +0 -267
  1249. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot5.hpp +0 -267
  1250. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/slot.hpp +0 -32
  1251. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/stringize.hpp +0 -33
  1252. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple.hpp +0 -35
  1253. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/detail/is_single_return.hpp +0 -28
  1254. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/eat.hpp +0 -115
  1255. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/elem.hpp +0 -201
  1256. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/enum.hpp +0 -22
  1257. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/insert.hpp +0 -37
  1258. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/pop_back.hpp +0 -64
  1259. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/pop_front.hpp +0 -65
  1260. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/push_back.hpp +0 -31
  1261. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/push_front.hpp +0 -32
  1262. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/rem.hpp +0 -149
  1263. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/remove.hpp +0 -64
  1264. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/replace.hpp +0 -37
  1265. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/reverse.hpp +0 -117
  1266. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/size.hpp +0 -28
  1267. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/to_array.hpp +0 -39
  1268. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/to_list.hpp +0 -118
  1269. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/to_seq.hpp +0 -119
  1270. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic.hpp +0 -23
  1271. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/detail/is_single_return.hpp +0 -28
  1272. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/elem.hpp +0 -94
  1273. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/size.hpp +0 -30
  1274. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_array.hpp +0 -32
  1275. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_list.hpp +0 -25
  1276. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_seq.hpp +0 -25
  1277. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_tuple.hpp +0 -24
  1278. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/while.hpp +0 -17
  1279. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/wstringize.hpp +0 -29
  1280. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/index.html +0 -18
  1281. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/meta/libraries.json +0 -15
  1282. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/Jamfile.v2 +0 -252
  1283. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/arithmetic.c +0 -12
  1284. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/arithmetic.cpp +0 -12
  1285. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/arithmetic.cxx +0 -82
  1286. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/array.c +0 -14
  1287. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/array.cpp +0 -14
  1288. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/array.cxx +0 -192
  1289. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/comparison.c +0 -13
  1290. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/comparison.cpp +0 -12
  1291. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/comparison.cxx +0 -45
  1292. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/config_info.cpp +0 -93
  1293. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/control.c +0 -12
  1294. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/control.cpp +0 -12
  1295. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/control.cxx +0 -40
  1296. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/debug.c +0 -12
  1297. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/debug.cpp +0 -12
  1298. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/debug.cxx +0 -21
  1299. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/facilities.c +0 -12
  1300. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/facilities.cpp +0 -12
  1301. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/facilities.cxx +0 -55
  1302. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty.c +0 -12
  1303. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty.cpp +0 -12
  1304. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty.cxx +0 -145
  1305. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure.c +0 -12
  1306. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure.cpp +0 -12
  1307. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure.cxx +0 -25
  1308. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure2.c +0 -12
  1309. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure2.cpp +0 -12
  1310. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure2.cxx +0 -25
  1311. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/iteration.cpp +0 -33
  1312. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/iteration.h +0 -62
  1313. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/list.c +0 -14
  1314. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/list.cpp +0 -14
  1315. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/list.cxx +0 -91
  1316. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/logical.c +0 -12
  1317. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/logical.cpp +0 -12
  1318. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/logical.cxx +0 -59
  1319. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/punctuation.c +0 -14
  1320. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/punctuation.cpp +0 -14
  1321. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/punctuation.cxx +0 -54
  1322. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/repetition.cpp +0 -50
  1323. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/selection.c +0 -12
  1324. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/selection.cpp +0 -12
  1325. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/selection.cxx +0 -21
  1326. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/seq.c +0 -14
  1327. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/seq.cpp +0 -14
  1328. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/seq.cxx +0 -222
  1329. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/slot.c +0 -12
  1330. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/slot.cpp +0 -12
  1331. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/slot.cxx +0 -53
  1332. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/test.h +0 -37
  1333. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple.c +0 -14
  1334. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple.cpp +0 -14
  1335. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple.cxx +0 -266
  1336. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple_elem_bug_test.cxx +0 -38
  1337. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/variadic.c +0 -12
  1338. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/variadic.cpp +0 -12
  1339. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/variadic.cxx +0 -56
@@ -1,198 +0,0 @@
1
- #!/usr/bin/env python
2
-
3
- # Copyright Rene Rivera 2016
4
- #
5
- # Distributed under the Boost Software License, Version 1.0.
6
- # (See accompanying file LICENSE_1_0.txt or copy at
7
- # http://www.boost.org/LICENSE_1_0.txt)
8
-
9
- import os.path
10
- import shutil
11
- import sys
12
- from common import toolset_info, main, utils, script_common, ci_cli, set_arg
13
-
14
- __dirname__ = os.path.dirname(os.path.realpath(__file__))
15
-
16
- class script(script_common):
17
- '''
18
- Main script to test a Boost C++ Library.
19
- '''
20
-
21
- def __init__(self, ci_klass, **kargs):
22
- script_common.__init__(self, ci_klass, **kargs)
23
-
24
- def init(self, opt, kargs):
25
- opt.add_option( '--toolset',
26
- help="single toolset to test with" )
27
- opt.add_option( '--target',
28
- help="test target to build for testing, defaults to TARGET or 'minimal'")
29
- opt.add_option( '--address-model',
30
- help="address model to test, ie 64 or 32" )
31
- opt.add_option( '--variant',
32
- help="variant to test, ie debug, release" )
33
- set_arg(kargs, 'toolset', os.getenv("TOOLSET"))
34
- set_arg(kargs, 'target', os.getenv('TARGET', 'minimal'))
35
- set_arg(kargs, 'address_model', os.getenv("ADDRESS_MODEL",None))
36
- set_arg(kargs, 'variant', os.getenv("VARIANT","debug"))
37
- set_arg(kargs, 'cxxflags', os.getenv("CXXFLAGS",None))
38
- return kargs
39
-
40
- def start(self):
41
- script_common.start(self)
42
- # Some setup we need to redo for each invocation.
43
- self.boost_root = os.path.join(self.ci.work_dir,'boostorg','boost')
44
-
45
- @property
46
- def repo_path(self):
47
- if not hasattr(self,'_repo_path'):
48
- # Find the path for the submodule of the repo we are testing.
49
- if self.repo != 'boost':
50
- self._repo_path = None
51
- with open(os.path.join(self.boost_root,'.gitmodules'),"rU") as f:
52
- path = None
53
- url = None
54
- for line in f:
55
- line = line.strip()
56
- if line.startswith("[submodule"):
57
- path = None
58
- url = None
59
- else:
60
- name = line.split("=")[0].strip()
61
- value = line.split("=")[1].strip()
62
- if name == "path":
63
- path = value
64
- elif name == "url":
65
- url = value
66
- if name and url and url.endswith("/%s.git"%(self.repo)):
67
- self._repo_path = path
68
- if not self._repo_path:
69
- self._repo_path = "libs/%s"%(self.repo)
70
- return self._repo_path
71
-
72
- def command_install(self):
73
- script_common.command_install(self)
74
- # Fetch & install toolset..
75
- utils.log( "Install toolset: %s"%(self.toolset) )
76
- if self.toolset:
77
- self.command_install_toolset(self.toolset)
78
-
79
- def command_before_build(self):
80
- script_common.command_before_build(self)
81
-
82
- # Clone boost super-project.
83
- if self.repo != 'boost':
84
- utils.git_clone('boost',self.branch,cwd=self.ci.work_dir,no_submodules=True)
85
- utils.check_call("git","submodule","update","--quiet","--init","tools/build")
86
- utils.check_call("git","submodule","update","--quiet","--init","tools/boostdep")
87
- # The global jamfiles require config as they trigger build config checks.
88
- utils.check_call("git","submodule","update","--quiet","--init","libs/config")
89
-
90
- # Find the path for the submodule of the repo we are testing.
91
- if self.repo != 'boost':
92
- self.repo_dir = os.path.join(self.boost_root,self.repo_path)
93
-
94
- if self.repo != 'boost':
95
- # Copy in the existing library tree checkout.
96
- shutil.rmtree(self.repo_path)
97
- shutil.copytree(self.root_dir, self.repo_path)
98
-
99
- # Fetch the dependencies for the library we are testing.
100
- if self.repo != 'boost':
101
- os.chdir(self.boost_root)
102
- utils.check_call(
103
- sys.executable,
104
- 'tools/boostdep/depinst/depinst.py',
105
- self.repo)
106
-
107
- # Create config file for toolset.
108
- if not isinstance(self.ci, ci_cli):
109
- cxxflags = None
110
- if self.cxxflags:
111
- cxxflags = self.cxxflags.split()
112
- cxxflags = " <cxxflags>".join(cxxflags)
113
- utils.make_file(os.path.join(self.boost_root, 'project-config.jam'),
114
- """
115
- using %(toolset)s : %(version)s : %(command)s : %(cxxflags)s ;
116
- using python : %(pyversion)s : "%(python)s" ;
117
- """%{
118
- 'toolset':toolset_info[self.toolset]['toolset'],
119
- 'version':toolset_info[self.toolset]['version'],
120
- 'command':toolset_info[self.toolset]['command'],
121
- 'cxxflags':"<cxxflags>"+cxxflags if cxxflags else "",
122
- 'pyversion':"%s.%s"%(sys.version_info[0],sys.version_info[1]),
123
- 'python':sys.executable.replace("\\","\\\\")
124
- })
125
-
126
- def command_build(self):
127
- script_common.command_build(self)
128
-
129
- # Set up tools.
130
- utils.makedirs(os.path.join(self.build_dir,'dist','bin'))
131
- if not isinstance(self.ci, ci_cli) and toolset_info[self.toolset]['command']:
132
- os.environ['PATH'] = os.pathsep.join([
133
- os.path.dirname(toolset_info[self.toolset]['command']),
134
- os.path.join(self.build_dir,'dist','bin'),
135
- os.environ['PATH']])
136
- else:
137
- os.environ['PATH'] = os.pathsep.join([
138
- os.path.join(self.build_dir,'dist','bin'),
139
- os.environ['PATH']])
140
- os.environ['BOOST_BUILD_PATH'] = self.build_dir
141
-
142
- # Bootstrap Boost Build engine.
143
- os.chdir(os.path.join(self.boost_root,"tools","build"))
144
- if sys.platform == 'win32':
145
- utils.check_call(".\\bootstrap.bat")
146
- shutil.copy2("b2.exe", os.path.join(self.build_dir,"dist","bin","b2.exe"))
147
- else:
148
- utils.check_call("./bootstrap.sh")
149
- shutil.copy2("b2", os.path.join(self.build_dir,"dist","bin","b2"))
150
- utils.check_call("git","clean","-dfqx")
151
-
152
- # Run the limited tests.
153
- if self.repo != 'boost':
154
- print("--- Testing %s ---"%(self.repo_path))
155
- os.chdir(os.path.join(self.boost_root,'status'))
156
- to_test = self.repo_path.split("/")
157
- del to_test[0]
158
- toolset_to_test = ""
159
- if self.toolset:
160
- if not isinstance(self.ci, ci_cli):
161
- toolset_to_test = toolset_info[self.toolset]['toolset']
162
- else:
163
- toolset_to_test = self.toolset
164
- self.b2(
165
- '-d1',
166
- '-p0',
167
- '--include-tests=%s'%("/".join(to_test)),
168
- 'preserve-test-targets=off',
169
- '--dump-tests',
170
- '--build-dir=%s'%(self.build_dir),
171
- '--out-xml=%s'%(os.path.join(self.build_dir,'regression.xml')),
172
- '' if not toolset_to_test else 'toolset=%s'%(toolset_to_test),
173
- '' if not self.address_model else 'address-model=%s'%(self.address_model),
174
- 'variant=%s'%(self.variant),
175
- '--test-type=%s'%(self.target),
176
- '--verbose-test'
177
- )
178
-
179
- # Generate a readable test report.
180
- import build_log
181
- log_main = build_log.Main([
182
- '--output=console',
183
- os.path.join(self.build_dir,'regression.xml')])
184
- # And exit with an error if the report contains failures.
185
- # This lets the CI notice the error and report a failed build.
186
- # And hence trigger the failure machinery, like sending emails.
187
- if log_main.failed:
188
- self.ci.finish(-1)
189
-
190
- def command_before_cache(self):
191
- script_common.command_before_cache(self)
192
- os.chdir(self.boost_root)
193
- utils.check_call("git","clean","-dfqx")
194
- utils.check_call("git","submodule","--quiet","foreach","git","clean","-dfqx")
195
- utils.check_call("git","status","-bs")
196
- utils.check_call("git","submodule","foreach","git","status","-bs")
197
-
198
- main(script)
@@ -1,96 +0,0 @@
1
- * text=auto !eol svneol=native#text/plain
2
- *.gitattributes text svneol=native#text/plain
3
-
4
- # Scriptish formats
5
- *.bat text svneol=native#text/plain
6
- *.bsh text svneol=native#text/x-beanshell
7
- *.cgi text svneol=native#text/plain
8
- *.cmd text svneol=native#text/plain
9
- *.js text svneol=native#text/javascript
10
- *.php text svneol=native#text/x-php
11
- *.pl text svneol=native#text/x-perl
12
- *.pm text svneol=native#text/x-perl
13
- *.py text svneol=native#text/x-python
14
- *.sh eol=lf svneol=LF#text/x-sh
15
- configure eol=lf svneol=LF#text/x-sh
16
-
17
- # Image formats
18
- *.bmp binary svneol=unset#image/bmp
19
- *.gif binary svneol=unset#image/gif
20
- *.ico binary svneol=unset#image/ico
21
- *.jpeg binary svneol=unset#image/jpeg
22
- *.jpg binary svneol=unset#image/jpeg
23
- *.png binary svneol=unset#image/png
24
- *.tif binary svneol=unset#image/tiff
25
- *.tiff binary svneol=unset#image/tiff
26
- *.svg text svneol=native#image/svg%2Bxml
27
-
28
- # Data formats
29
- *.pdf binary svneol=unset#application/pdf
30
- *.avi binary svneol=unset#video/avi
31
- *.doc binary svneol=unset#application/msword
32
- *.dsp text svneol=crlf#text/plain
33
- *.dsw text svneol=crlf#text/plain
34
- *.eps binary svneol=unset#application/postscript
35
- *.gz binary svneol=unset#application/gzip
36
- *.mov binary svneol=unset#video/quicktime
37
- *.mp3 binary svneol=unset#audio/mpeg
38
- *.ppt binary svneol=unset#application/vnd.ms-powerpoint
39
- *.ps binary svneol=unset#application/postscript
40
- *.psd binary svneol=unset#application/photoshop
41
- *.rdf binary svneol=unset#text/rdf
42
- *.rss text svneol=unset#text/xml
43
- *.rtf binary svneol=unset#text/rtf
44
- *.sln text svneol=native#text/plain
45
- *.swf binary svneol=unset#application/x-shockwave-flash
46
- *.tgz binary svneol=unset#application/gzip
47
- *.vcproj text svneol=native#text/xml
48
- *.vcxproj text svneol=native#text/xml
49
- *.vsprops text svneol=native#text/xml
50
- *.wav binary svneol=unset#audio/wav
51
- *.xls binary svneol=unset#application/vnd.ms-excel
52
- *.zip binary svneol=unset#application/zip
53
-
54
- # Text formats
55
- .htaccess text svneol=native#text/plain
56
- *.bbk text svneol=native#text/xml
57
- *.cmake text svneol=native#text/plain
58
- *.css text svneol=native#text/css
59
- *.dtd text svneol=native#text/xml
60
- *.htm text svneol=native#text/html
61
- *.html text svneol=native#text/html
62
- *.ini text svneol=native#text/plain
63
- *.log text svneol=native#text/plain
64
- *.mak text svneol=native#text/plain
65
- *.qbk text svneol=native#text/plain
66
- *.rst text svneol=native#text/plain
67
- *.sql text svneol=native#text/x-sql
68
- *.txt text svneol=native#text/plain
69
- *.xhtml text svneol=native#text/xhtml%2Bxml
70
- *.xml text svneol=native#text/xml
71
- *.xsd text svneol=native#text/xml
72
- *.xsl text svneol=native#text/xml
73
- *.xslt text svneol=native#text/xml
74
- *.xul text svneol=native#text/xul
75
- *.yml text svneol=native#text/plain
76
- boost-no-inspect text svneol=native#text/plain
77
- CHANGES text svneol=native#text/plain
78
- COPYING text svneol=native#text/plain
79
- INSTALL text svneol=native#text/plain
80
- Jamfile text svneol=native#text/plain
81
- Jamroot text svneol=native#text/plain
82
- Jamfile.v2 text svneol=native#text/plain
83
- Jamrules text svneol=native#text/plain
84
- Makefile* text svneol=native#text/plain
85
- README text svneol=native#text/plain
86
- TODO text svneol=native#text/plain
87
-
88
- # Code formats
89
- *.c text svneol=native#text/plain
90
- *.cpp text svneol=native#text/plain
91
- *.h text svneol=native#text/plain
92
- *.hpp text svneol=native#text/plain
93
- *.ipp text svneol=native#text/plain
94
- *.tpp text svneol=native#text/plain
95
- *.jam text svneol=native#text/plain
96
- *.java text svneol=native#text/plain
@@ -1,39 +0,0 @@
1
- # Copyright 2016 Edward Diener
2
- # Distributed under the Boost Software License, Version 1.0.
3
- # (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
4
-
5
- language: cpp
6
-
7
- sudo: false
8
-
9
- python: "2.7"
10
-
11
- os:
12
- - linux
13
- - osx
14
-
15
- branches:
16
- only:
17
- - master
18
- - develop
19
-
20
- install:
21
- - cd ..
22
- - git clone -b $TRAVIS_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
23
- - cd boost-root
24
- - git submodule update --init tools/build
25
- - git submodule update --init libs/config
26
- - git submodule update --init tools/boostdep
27
- - cp -r $TRAVIS_BUILD_DIR/* libs/preprocessor
28
- - python tools/boostdep/depinst/depinst.py preprocessor
29
- - ./bootstrap.sh
30
- - ./b2 headers
31
-
32
- script:
33
- - TOOLSET=gcc,clang
34
- - if [ $TRAVIS_OS_NAME == osx ]; then TOOLSET=clang; fi
35
- - ./b2 libs/preprocessor/test toolset=$TOOLSET
36
-
37
- notifications:
38
- email:
39
- on_success: always
@@ -1,36 +0,0 @@
1
- # Copyright 2017 Edward Diener
2
- # Distributed under the Boost Software License, Version 1.0.
3
- # (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
4
-
5
- version: 1.0.{build}-{branch}
6
-
7
- shallow_clone: true
8
-
9
- branches:
10
- only:
11
- - master
12
- - develop
13
-
14
- environment:
15
- matrix:
16
- - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
17
- TOOLSET: msvc-9.0,msvc-10.0,msvc-11.0,msvc-12.0,msvc-14.0
18
- - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
19
- TOOLSET: msvc-14.1
20
-
21
- install:
22
- - cd ..
23
- - git clone -b %APPVEYOR_REPO_BRANCH% https://github.com/boostorg/boost.git boost-root
24
- - cd boost-root
25
- - git submodule update --init tools/build
26
- - git submodule update --init libs/config
27
- - git submodule update --init tools/boostdep
28
- - xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\preprocessor
29
- - python tools/boostdep/depinst/depinst.py preprocessor
30
- - bootstrap
31
- - b2 headers
32
-
33
- build: off
34
-
35
- test_script:
36
- - b2 libs/preprocessor/test toolset=%TOOLSET%
@@ -1,2494 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8" ?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html
3
-
4
- lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
5
- <head>
6
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
7
- <meta name="generator" content="Docutils 0.3.8: http://docutils.sourceforge.net/" />
8
- <title>Appendix A - An Introduction to Preprocessor Metaprogramming</title>
9
- <meta name="copyright" content="From &quot;C++ Template Metaprogramming,&quot; by David Abrahams and Aleksey Gurtovoy. Copyright (c) 2005 by Pearson Education, Inc. Reprinted with permission." />
10
- <style type="text/css">
11
-
12
- /*
13
- :Author: David Goodger
14
- :Contact: goodger@users.sourceforge.net
15
- :date: $Date: 2004/06/23 13:31:26 $
16
- :version: $Revision: 1.37 $
17
- :copyright: This stylesheet has been placed in the public domain.
18
-
19
- Default cascading style sheet for the HTML output of Docutils.
20
- */
21
-
22
- .first {
23
- margin-top: 0 }
24
-
25
- .last {
26
- margin-bottom: 0 }
27
-
28
- a.toc-backref {
29
- text-decoration: none ;
30
- color: black }
31
-
32
- blockquote.epigraph {
33
- margin: 2em 5em ; }
34
-
35
- dd {
36
- margin-bottom: 0.5em }
37
-
38
- /* Uncomment (& remove this text!) to get bold-faced definition list terms
39
- dt {
40
- font-weight: bold }
41
- */
42
-
43
- div.abstract {
44
- margin: 2em 5em }
45
-
46
- div.abstract p.topic-title {
47
- font-weight: bold ;
48
- text-align: center }
49
-
50
- div.attention, div.caution, div.danger, div.error, div.hint,
51
- div.important, div.note, div.tip, div.warning, div.admonition {
52
- margin: 2em ;
53
- border: medium outset ;
54
- padding: 1em }
55
-
56
- div.attention p.admonition-title, div.caution p.admonition-title,
57
- div.danger p.admonition-title, div.error p.admonition-title,
58
- div.warning p.admonition-title {
59
- color: red ;
60
- font-weight: bold ;
61
- font-family: sans-serif }
62
-
63
- div.hint p.admonition-title, div.important p.admonition-title,
64
- div.note p.admonition-title, div.tip p.admonition-title,
65
- div.admonition p.admonition-title {
66
- font-weight: bold ;
67
- font-family: sans-serif }
68
-
69
- div.dedication {
70
- margin: 2em 5em ;
71
- text-align: center ;
72
- font-style: italic }
73
-
74
- div.dedication p.topic-title {
75
- font-weight: bold ;
76
- font-style: normal }
77
-
78
- div.figure {
79
- margin-left: 2em }
80
-
81
- div.footer, div.header {
82
- font-size: smaller }
83
-
84
- div.sidebar {
85
- margin-left: 1em ;
86
- border: medium outset ;
87
- padding: 0em 1em ;
88
- background-color: #ffffee ;
89
- width: 40% ;
90
- float: right ;
91
- clear: right }
92
-
93
- div.sidebar p.rubric {
94
- font-family: sans-serif ;
95
- font-size: medium }
96
-
97
- div.system-messages {
98
- margin: 5em }
99
-
100
- div.system-messages h1 {
101
- color: red }
102
-
103
- div.system-message {
104
- border: medium outset ;
105
- padding: 1em }
106
-
107
- div.system-message p.system-message-title {
108
- color: red ;
109
- font-weight: bold }
110
-
111
- div.topic {
112
- margin: 2em }
113
-
114
- h1.title {
115
- text-align: center }
116
-
117
- h2.subtitle {
118
- text-align: center }
119
-
120
- hr {
121
- width: 75% }
122
-
123
- ol.simple, ul.simple {
124
- margin-bottom: 1em }
125
-
126
- ol.arabic {
127
- list-style: decimal }
128
-
129
- ol.loweralpha {
130
- list-style: lower-alpha }
131
-
132
- ol.upperalpha {
133
- list-style: upper-alpha }
134
-
135
- ol.lowerroman {
136
- list-style: lower-roman }
137
-
138
- ol.upperroman {
139
- list-style: upper-roman }
140
-
141
- p.attribution {
142
- text-align: right ;
143
- margin-left: 50% }
144
-
145
- p.caption {
146
- font-style: italic }
147
-
148
- p.credits {
149
- font-style: italic ;
150
- font-size: smaller }
151
-
152
- p.label {
153
- white-space: nowrap }
154
-
155
- p.rubric {
156
- font-weight: bold ;
157
- font-size: larger ;
158
- color: maroon ;
159
- text-align: center }
160
-
161
- p.sidebar-title {
162
- font-family: sans-serif ;
163
- font-weight: bold ;
164
- font-size: larger }
165
-
166
- p.sidebar-subtitle {
167
- font-family: sans-serif ;
168
- font-weight: bold }
169
-
170
- p.topic-title {
171
- font-weight: bold }
172
-
173
- pre.address {
174
- margin-bottom: 0 ;
175
- margin-top: 0 ;
176
- font-family: serif ;
177
- font-size: 100% }
178
-
179
- pre.line-block {
180
- font-family: serif ;
181
- font-size: 100% }
182
-
183
- pre.literal-block, pre.doctest-block {
184
- margin-left: 2em ;
185
- margin-right: 2em ;
186
- background-color: #eeeeee }
187
-
188
- span.classifier {
189
- font-family: sans-serif ;
190
- font-style: oblique }
191
-
192
- span.classifier-delimiter {
193
- font-family: sans-serif ;
194
- font-weight: bold }
195
-
196
- span.interpreted {
197
- font-family: sans-serif }
198
-
199
- span.option {
200
- white-space: nowrap }
201
-
202
- span.option-argument {
203
- font-style: italic }
204
-
205
- span.pre {
206
- white-space: pre }
207
-
208
- span.problematic {
209
- color: red }
210
-
211
- table {
212
- margin-top: 0.5em ;
213
- margin-bottom: 0.5em }
214
-
215
- table.citation {
216
- border-left: solid thin gray ;
217
- padding-left: 0.5ex }
218
-
219
- table.docinfo {
220
- margin: 2em 4em }
221
-
222
- table.footnote {
223
- border-left: solid thin black ;
224
- padding-left: 0.5ex }
225
-
226
- dt {
227
- font-weight: bold }
228
-
229
- td, th {
230
- padding-left: 0.5em ;
231
- padding-right: 0.5em ;
232
- vertical-align: top }
233
-
234
- th.docinfo-name, th.field-name {
235
- font-weight: bold ;
236
- text-align: left ;
237
- white-space: nowrap }
238
-
239
- h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
240
- font-size: 100% }
241
-
242
- tt {
243
- background-color: #eeeeee }
244
-
245
- ul.auto-toc {
246
- list-style-type: none }
247
-
248
- </style> </head>
249
- <body><br />
250
- <div class="document" id="preprocessor-title">
251
- <h1 class="title">Appendix A - An Introduction to Preprocessor
252
- Metaprogramming</h1>
253
- <table class="docinfo" frame="void" rules="none">
254
- <colgroup><col class="docinfo-name" /> <col class="docinfo-content" />
255
- </colgroup>
256
- <tbody valign="top">
257
- <tr>
258
- <th class="docinfo-name">Copyright:</th>
259
- <td>From "C++ Template Metaprogramming," by David Abrahams and
260
- Aleksey Gurtovoy. Copyright (c) 2005 by Pearson Education, Inc.
261
- Reprinted with permission.</td>
262
- </tr>
263
- <tr class="field">
264
- <th class="docinfo-name">ISBN:</th>
265
- <td class="field-body">0321227255</td>
266
- </tr>
267
- </tbody>
268
- </table>
269
- <div class="section" id="motivation">
270
- <h1><a name="motivation">A.1   Motivation</a></h1>
271
- <p>Even with the full power of template metaprogramming and the <a class="reference"
272
-
273
- href="http://www.boost.org/libs/mpl">Boost Metaprogramming library</a>
274
- at our disposal, some C++ coding jobs still require a great deal of
275
- boilerplate code repetition. We saw one example in Chapter 5, when we
276
- implemented <tt class="docutils literal"><span class="pre">tiny_size</span></tt>:</p>
277
- <pre class="literal-block">template &lt;class T0, class T1, class T2&gt;
278
- struct tiny_size
279
- : mpl::int_&lt;3&gt; {};
280
- </pre>
281
- <!-- : rst-mode hack -->
282
- <!-- @prefix.append('struct none {};') -->
283
- <p>Aside from the repeated pattern in the parameter list of the primary
284
- template above, there are three partial specializations below, which
285
- also follow a predictable pattern:</p>
286
- <pre class="literal-block">template &lt;class T0, class T1&gt;
287
- struct tiny_size&lt;T0,T1,none&gt;
288
- : mpl::int_&lt;2&gt; {};
289
-
290
- template &lt;class T0&gt;
291
- struct tiny_size&lt;T0,none,none&gt;
292
- : mpl::int_&lt;1&gt; {};
293
-
294
- template &lt;&gt;
295
- struct tiny_size&lt;none,none,none&gt;
296
- : mpl::int_&lt;0&gt; {};
297
- </pre>
298
- <!-- : rst-mode hack -->
299
- <!-- @compile('all') -->
300
- <p>In this case there is only a small amount of code with such a
301
- "mechanical" flavor, but had we been implementing <tt class="docutils literal"><span
302
-
303
- class="pre">large</span></tt> instead of <tt class="docutils literal"><span
304
-
305
- class="pre">tiny</span></tt>, there might easily have been a great
306
- deal more. When the number of instances of a pattern grows beyond two
307
- or three, writing them by hand tends to become error-prone. Perhaps
308
- more importantly, the code gets hard to read, because the important
309
- abstraction in the code is really the pattern, not the individual
310
- instances.</p>
311
- <div class="section" id="code-generation">
312
- <h2><a name="code-generation">A.1.1   Code Generation</a></h2>
313
- <p>Rather than being written out by hand, mechanical-looking code
314
- should really be generated mechanically. Having written a program to
315
- spit out instances of the code pattern, a library author has two
316
- choices: She can either ship pre-generated source code files, or she
317
- can ship the generator itself. Either approach has drawbacks. If
318
- clients only get the generated source, they are stuck with whatever
319
- the library author generated—and experience shows that if they are
320
- happy with three instances of a pattern today, someone will need
321
- four tomorrow. If clients get the generator program, on the other
322
- hand, they also need the resources to execute it (e.g.,
323
- interpreters), and they must integrate the generator into their
324
- build processes...</p>
325
- </div>
326
- <div class="section" id="enter-the-preprocessor">
327
- <h2><a name="enter-the-preprocessor">A.1.2   Enter the Preprocessor</a></h2>
328
- <p>...unless the generator is a preprocessor metaprogram. Though not
329
- designed for that purpose, the C and C++ preprocessors can be made
330
- to execute sophisticated programs during the preprocessing phase of
331
- compilation. Users can control the code generation process with
332
- preprocessor <tt class="docutils literal"><span class="pre">#define</span></tt>s
333
- in code or <tt class="docutils literal"><span class="pre">-D</span></tt>
334
- options on the compiler's command line, making build integration
335
- trivial. For example, we might parameterize the primary <tt class="docutils literal"><span
336
-
337
- class="pre">tiny_size</span></tt> template above as follows:</p>
338
- <pre class="literal-block">#include &lt;<strong>boost/preprocessor/repetition/enum_params</strong>.hpp&gt;
339
-
340
- #ifndef TINY_MAX_SIZE
341
- # define TINY_MAX_SIZE 3 // default maximum size is 3
342
- #endif
343
-
344
- template &lt;<strong>BOOST_PP_ENUM_PARAMS(TINY_MAX_SIZE, class T)</strong>&gt;
345
- struct tiny_size
346
- : mpl::int_&lt;TINY_MAX_SIZE&gt;
347
- {};
348
- </pre>
349
- <!-- : rst-mode hack -->
350
- <!-- @compile(pop = None) -->
351
- <p>To test the metaprogram, run your compiler in its "preprocessing"
352
- mode (usually the <tt class="docutils literal"><span class="pre">-E</span></tt>
353
- option), with the Boost root directory in your <tt class="docutils literal"><span
354
-
355
- class="pre">#include</span></tt> path. For instance:<a class="footnote-reference"
356
-
357
- href="#minusp" id="id2" name="id2">[1]</a></p>
358
- <pre class="literal-block">g++ -P -E -Ipath/to/boost_1_32_0 -I. test.cpp
359
- </pre>
360
- <!-- @ignore() -->
361
- <table class="docutils footnote" frame="void" id="minusp" rules="none">
362
- <colgroup><col class="label" /><col /></colgroup>
363
- <tbody valign="top">
364
- <tr>
365
- <td class="label"><a class="fn-backref" href="#id2" name="minusp">[1]</a></td>
366
- <td>GCC's <tt class="docutils literal"><span class="pre">-P</span></tt>
367
- option inhibits the generation of source file and line number
368
- markers in preprocessed output.</td>
369
- </tr>
370
- </tbody>
371
- </table>
372
- <p>Given the appropriate metaprograms, users would be able to adjust
373
- not only the number of parameters to <tt class="docutils literal"><span
374
-
375
- class="pre">tiny_size</span></tt>, but the maximum size of the
376
- entire <tt class="docutils literal"><span class="pre">tiny</span></tt>
377
- implementation just by <tt class="docutils literal"><span class="pre">#define</span></tt>-ing
378
- <tt class="docutils literal"><span class="pre">TINY_MAX_SIZE</span></tt>.</p>
379
- <p>The Boost Preprocessor library <a class="citation-reference" href="#mk04"
380
-
381
- id="id3" name="id3">[MK04]</a> plays a role in preprocessor
382
- metaprogramming similar to the one played by the MPL in template
383
- metaprogramming: It supplies a framework of high-level components
384
- (like <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM_PARAMS</span></tt>)
385
- that make otherwise-painful metaprogramming jobs approachable. In
386
- this appendix we won't attempt to cover nitty-gritty details of how
387
- the preprocessor works, nor principles of preprocessor
388
- metaprogramming in general, nor even many details of how the
389
- Preprocessor <em>library</em> works. We <em>will</em> show you
390
- enough at a high level that you'll be able to use the library
391
- productively and learn the rest on your own.</p>
392
- <table class="docutils citation" frame="void" id="mk04" rules="none">
393
- <colgroup><col class="label" /><col /></colgroup>
394
- <tbody valign="top">
395
- <tr>
396
- <td class="label"><a class="fn-backref" href="#id3" name="mk04">[MK04]</a></td>
397
- <td>Paul Mensonides and Vesa Karvonen. "The Boost Preprocessor
398
- Library." <a class="reference" href="http://www.boost.org/libs/preprocessor">http://www.boost.org/libs/preprocessor</a>.</td>
399
- </tr>
400
- </tbody>
401
- </table>
402
- </div>
403
- </div>
404
- <div class="section" id="fundamental-abstractions-of-the-preprocessor">
405
- <h1><a name="fundamental-abstractions-of-the-preprocessor">A.2   Fundamental
406
- Abstractions of the Preprocessor</a></h1>
407
- <p>We began our discussion of template metaprogramming in Chapter 2 by
408
- describing its metadata (potential template arguments) and
409
- metafunctions (class templates). On the basis of those two fundamental
410
- abstractions, we built up the entire picture of compile-time
411
- computation covered in the rest of this book. In this section we'll
412
- lay a similar foundation for the preprocessor metaprogrammer. Some of
413
- what we cover here may be a review for you, but it's important to
414
- identify the basic concepts going into detail.</p>
415
- <div class="section" id="preprocessing-tokens">
416
- <h2><a name="preprocessing-tokens">A.2.1   Preprocessing Tokens</a></h2>
417
- <p>The fundamental unit of data in the preprocessor is the <strong>preprocessing
418
- token</strong>. Preprocessing tokens correspond roughly to the
419
- tokens you're used to working with in C++, such as identifiers,
420
- operator symbols, and literals. Technically, there are some
421
- differences between <em>preprocessing tokens</em> and regular <em>tokens</em>
422
- (see section 2 of the C++ standard for details), but they can be
423
- ignored for the purposes of this discussion. In fact, we'll be using
424
- the terms interchangeably here.</p>
425
- </div>
426
- <div class="section" id="macros">
427
- <h2><a name="macros">A.2.2   Macros</a></h2>
428
- <p>Preprocessor macros come in two flavors. <strong>Object-like
429
- macros</strong> can be defined this way:</p>
430
- <blockquote>
431
- <div class="line-block">
432
- <div class="line"><tt class="docutils literal"><span class="pre">#define</span></tt>
433
- <em>identifier</em> <em>replacement-list</em></div>
434
- </div>
435
- </blockquote>
436
- <!-- @litre_translator.line_offset -= 7 -->
437
- <p>where the <em>identifier</em> names the macro being defined, and <em>replacement-list</em>
438
- is a sequence of zero or more tokens. Where the <em>identifier</em>
439
- appears in subsequent program text, it is <strong>expanded</strong>
440
- by the preprocessor into its <em>replacement-list</em>.</p>
441
- <p><strong>Function-like macros</strong>, which act as the
442
- "metafunctions of the preprocessing phase," are defined as follows:</p>
443
- <blockquote>
444
- <div class="line-block">
445
- <div class="line"><tt class="docutils literal"><span class="pre">#define</span></tt>
446
- <em>identifier</em>(<em>a</em><sub>1</sub>, <em>a</em><sub>2</sub>,
447
- ... <em>a</em><sub>n</sub>) <em>replacement-list</em></div>
448
- </div>
449
- </blockquote>
450
- <!-- @litre_translator.line_offset -= 7 -->
451
- <p>where each <em>a</em><sub>i</sub> is an identifier naming a <strong>macro
452
- parameter</strong>. When the macro name appears in subsequent
453
- program text followed by a suitable argument list, it is expanded
454
- into its <em>replacement-list</em>, except that each argument is
455
- substituted for the corresponding parameter where it appears in the
456
- <em>replacement-list</em>.<a class="footnote-reference" href="#expansion"
457
-
458
- id="id4" name="id4">[2]</a></p>
459
- <table class="docutils footnote" frame="void" id="expansion" rules="none">
460
- <colgroup><col class="label" /><col /></colgroup>
461
- <tbody valign="top">
462
- <tr>
463
- <td class="label"><a class="fn-backref" href="#id4" name="expansion">[2]</a></td>
464
- <td>We have omitted many details of how macro expansion works.
465
- We encourage you to take a few minutes to study section 16.3
466
- of the C++ standard, which describes that process in
467
- straightforward terms.</td>
468
- </tr>
469
- </tbody>
470
- </table>
471
- </div>
472
- <div class="section" id="macro-arguments">
473
- <h2><a name="macro-arguments">A.2.3   Macro Arguments</a></h2>
474
- <div class="admonition-definition admonition">
475
- <p class="first admonition-title">Definition</p>
476
- <p>A <strong>macro argument</strong> is a nonempty sequence of:</p>
477
- <ul class="last simple">
478
- <li>Preprocessing tokens other than commas or parentheses, <em>and/or</em></li>
479
- <li>Preprocessing tokens surrounded by matched pairs of
480
- parentheses.</li>
481
- </ul>
482
- </div>
483
- <p>This definition has consequences for preprocessor metaprogramming
484
- that must not be underestimated. Note, first of all, that the
485
- following tokens have special status:</p>
486
- <blockquote>
487
- <pre class="literal-block">, ( )
488
- </pre> </blockquote>
489
- <!-- @ignore() -->
490
- <p>As a result, a macro argument can never contain an unmatched
491
- parenthesis, or a comma that is not surrounded by matched
492
- parentheses. For example, both lines following the definition of FOO
493
- below are ill-formed:</p>
494
- <pre class="literal-block">#define FOO(X) X // Unary identity macro
495
- FOO(,) // un-parenthesized comma or two empty arguments
496
- FOO()) // unmatched parenthesis or missing argument
497
- </pre>
498
- <!-- @def pp_failure(options = ['-E'], **kw):
499
- compile( expect_error = not 'mwcc' in config.compiler , options = options, **kw)pp_failure() -->
500
- <p>Note also that the following tokens do <em>not</em> have special
501
- status; the preprocessor knows nothing about matched pairs of
502
- braces, brackets, or angle brackets:</p>
503
- <blockquote>
504
- <pre class="literal-block">{ } [ ] &lt; &gt;
505
- </pre> </blockquote>
506
- <!-- @ignore() -->
507
- <p>As a result, these lines are also ill-formed:</p>
508
- <pre class="literal-block">FOO(std::pair&lt;int<strong>,</strong> long&gt;) // two arguments
509
- FOO({ int x = 1<strong>,</strong> y = 2; return x+y; }) // two arguments
510
- </pre>
511
- <!-- @example.prepend('#define FOO(X) X')
512
- pp_failure() -->
513
- <p>It <em>is</em> possible to pass either string of tokens above as
514
- part of a single macro argument, provided it is parenthesized:</p>
515
- <pre class="literal-block">FOO(<strong>(</strong>std::pair&lt;int,int&gt;<strong>)</strong>) // one argument
516
- FOO(<strong>(</strong>{ int x = 1, y = 2; return x+y; }<strong>)</strong>) // one argument
517
- </pre>
518
- <!-- @example.prepend('#define FOO(X) X')
519
- compile(options = ['-E']) -->
520
- <p>However, because of the special status of commas, it is impossible
521
- to strip parentheses from a macro argument without knowing the
522
- number of comma-separated token sequences it contains.<a class="footnote-reference"
523
-
524
- href="#c99" id="id5" name="id5">[3]</a> If you are writing a macro
525
- that needs to be able to accept an argument containing a variable
526
- number of commas, your users will either have to parenthesize that
527
- argument <em>and</em> pass you the number of comma-separated token
528
- sequences as an additional argument, or they will have to encode the
529
- same information in one of the preprocessor data structures covered
530
- later in this appendix.</p>
531
- <table class="docutils footnote" frame="void" id="c99" rules="none">
532
- <colgroup><col class="label" /><col /></colgroup>
533
- <tbody valign="top">
534
- <tr>
535
- <td class="label"><a name="c99">[3]</a></td>
536
- <td><em>(<a class="fn-backref" href="#id5">1</a>, <a class="fn-backref"
537
-
538
- href="#id12">2</a>)</em> The C99 preprocessor, by virtue
539
- of its variadic macros, can do that and more. The C++
540
- standardization committee is likely to adopt C99's
541
- preprocessor extensions for the next version of the C++
542
- standard.</td>
543
- </tr>
544
- </tbody>
545
- </table>
546
- </div>
547
- </div>
548
- <div class="section" id="preprocessor-library-structure">
549
- <h1><a name="preprocessor-library-structure">A.3   Preprocessor Library
550
- Structure</a></h1>
551
- <p>Since in-depth coverage of the Boost Preprocessor library is beyond
552
- the scope of this book, we'll try to give you the <em>tools</em> to
553
- gain an in-depth understanding of the library here. To do that, you'll
554
- need to use the electronic Preprocessor library documentation, which
555
- begins with the index.html file in the <tt class="docutils literal"><span
556
-
557
- class="pre">libs/preprocessor/</span></tt> subdirectory of your
558
- Boost installation.</p>
559
- <p>On the left of your browser window you'll see an index, and if you
560
- follow the "Headers" link, it will reveal the structure of the <tt class="docutils literal"><span
561
-
562
- class="pre">boost/preprocessor/</span></tt> directory. Most of the
563
- library's headers are grouped into subdirectories according to related
564
- functionality. The top-level directory contains only a few headers
565
- that provide general-purpose macros, along with a header for each
566
- subdirectory that simply <tt class="docutils literal"><span class="pre">#include</span></tt>s
567
- all the headers in that subdirectory. For example, <tt class="docutils literal"><span
568
-
569
- class="pre">boost/preprocessor/selection.hpp</span></tt> does
570
- nothing more than to <tt class="docutils literal"><span class="pre">#include</span></tt>
571
- the <tt class="docutils literal"><span class="pre">min.hpp</span></tt>
572
- and <tt class="docutils literal"><span class="pre">max.hpp</span></tt>
573
- headers that comprise the contents of <tt class="docutils literal"><span
574
-
575
- class="pre">boost/preprocessor/selection/</span></tt>. The headers
576
- whose names <em>don't</em> correspond to subdirectories generally
577
- declare a macro whose name is the same as the name of the header,
578
- without the extension, and with a <tt class="docutils literal"><span
579
-
580
- class="pre">BOOST_PP_</span></tt> prefix. For example, <tt class="docutils literal"><span
581
-
582
- class="pre">boost/preprocessor/selection/max.hpp</span></tt>
583
- declares <tt class="docutils literal"><span class="pre">BOOST_PP_MAX</span></tt>.</p>
584
- <p>You'll also notice that often a header will declare an additional
585
- macro with a <tt class="docutils literal"><span class="pre">_D</span></tt>,
586
- <tt class="docutils literal"><span class="pre">_R</span></tt>, or <tt
587
-
588
- class="docutils literal"><span class="pre">_Z</span></tt> suffix.<a
589
-
590
- class="footnote-reference" href="#suffix" id="id6" name="id6">[4]</a>
591
- For instance, <tt class="docutils literal"><span class="pre">boost/preprocessor/selection/max.hpp</span></tt>
592
- also declares <tt class="docutils literal"><span class="pre">BOOST_PP_MAX_D</span></tt>.
593
- For the purposes of this appendix, you should ignore those macros.
594
- Eventually you will want to understand how they can be used to
595
- optimize preprocessing speed; consult the Topics section of the
596
- library documentation under the subheading "reentrancy" for that
597
- information.</p>
598
- <table class="docutils footnote" frame="void" id="suffix" rules="none">
599
- <colgroup><col class="label" /><col /></colgroup>
600
- <tbody valign="top">
601
- <tr>
602
- <td class="label"><a class="fn-backref" href="#id6" name="suffix">[4]</a></td>
603
- <td>Macros with <tt class="docutils literal"><span class="pre">_1ST</span></tt>,
604
- <tt class="docutils literal"><span class="pre">_2ND</span></tt>,
605
- or <tt class="docutils literal"><span class="pre">_3RD</span></tt>
606
- suffixes, if they appear, should be ignored for a different
607
- reason: They are deprecated and will be removed from the library
608
- soon.</td>
609
- </tr>
610
- </tbody>
611
- </table>
612
- </div>
613
- <div class="section" id="preprocessor-library-abstractions">
614
- <h1><a name="preprocessor-library-abstractions">A.4   Preprocessor
615
- Library Abstractions</a></h1>
616
- <p>In this section we'll discuss the basic abstractions of the
617
- Preprocessor library, and give some simple examples of each.</p>
618
- <div class="section" id="repetition">
619
- <h2><a name="repetition">A.4.1   Repetition</a></h2>
620
- <p>The repeated generation of <tt class="docutils literal"><span class="pre">class</span>
621
- <span class="pre">T0</span></tt>, <tt class="docutils literal"><span
622
-
623
- class="pre">class</span> <span class="pre">T1</span></tt>... <tt
624
-
625
- class="docutils literal"><span class="pre">class</span> <span class="pre">T</span></tt><em>n</em>
626
- that we achieved using <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM_PARAMS</span></tt>
627
- was a specific case of the general concept of <strong>horizontal
628
- repetition</strong>. The library also has a concept of vertical
629
- repetition, which we'll get to in a moment. Horizontal repetition
630
- macros are all found in the library's <tt class="docutils literal"><span
631
-
632
- class="pre">repetition/</span></tt> subdirectory.</p>
633
- <div class="section" id="horizontal-repetition">
634
- <h3><a name="horizontal-repetition">A.4.1.1   Horizontal Repetition</a></h3>
635
- <p>To generate the <tt class="docutils literal"><span class="pre">tiny_size</span></tt>
636
- specializations using horizontal repetition, we might write the
637
- following:</p>
638
- <pre class="literal-block">#include &lt;boost/preprocessor/repetition.hpp&gt;
639
- #include &lt;boost/preprocessor/arithmetic/sub.hpp&gt;
640
- #include &lt;boost/preprocessor/punctuation/comma_if.hpp&gt;
641
-
642
- #define TINY_print(z, n, data) data
643
-
644
- #define TINY_size(z, n, unused) \
645
- template &lt;BOOST_PP_ENUM_PARAMS(n, class T)&gt; \
646
- struct tiny_size&lt; \
647
- BOOST_PP_ENUM_PARAMS(n,T) \
648
- BOOST_PP_COMMA_IF(n) \
649
- BOOST_PP_ENUM( \
650
- BOOST_PP_SUB(TINY_MAX_SIZE,n), TINY_print, none) \
651
- &gt; \
652
- : mpl::int_&lt;n&gt; {};
653
-
654
- BOOST_PP_REPEAT(TINY_MAX_SIZE, TINY_size, ~)
655
-
656
- #undef TINY_size
657
- #undef TINY_print
658
- </pre>
659
- <!-- @import re
660
- compile('all', pop = None)example.sub('BOOST_PP_REPEAT.*', '', flags = re.DOTALL) -->
661
- <p>The code generation process is kicked off by calling <tt class="docutils literal"><span
662
-
663
- class="pre">BOOST_PP_REPEAT</span></tt>, a <strong>higher-order
664
- macro</strong> that repeatedly invokes the macro named by its
665
- second argument (<tt class="docutils literal"><span class="pre">TINY_size</span></tt>).
666
- The first argument specifies the number of repeated invocations,
667
- and the third one can be any data; it is passed on unchanged to
668
- the macro being invoked. In this case, <tt class="docutils literal"><span
669
-
670
- class="pre">TINY_size</span></tt> doesn't use that data, so
671
- the choice to pass <tt class="docutils literal"><span class="pre">~</span></tt>
672
- was arbitrary.<a class="footnote-reference" href="#markers" id="id7"
673
-
674
- name="id7">[5]</a></p>
675
- <table class="docutils footnote" frame="void" id="markers" rules="none">
676
- <colgroup><col class="label" /><col /></colgroup>
677
- <tbody valign="top">
678
- <tr>
679
- <td class="label"><a class="fn-backref" href="#id7" name="markers">[5]</a></td>
680
- <td><tt class="docutils literal"><span class="pre">~</span></tt>
681
- is not an <em>entirely</em> arbitrary choice. Both <tt class="docutils literal"><span
682
-
683
- class="pre">@</span></tt> and <tt class="docutils literal"><span
684
-
685
- class="pre">$</span></tt> might have been good choices,
686
- except that they are technically not part of the basic
687
- character set that C++ implementations are required to
688
- support. An identifier like <tt class="docutils literal"><span
689
-
690
- class="pre">ignored</span></tt> might be subject to
691
- macro expansion, leading to unexpected results.</td>
692
- </tr>
693
- </tbody>
694
- </table>
695
- <p>Each time the <tt class="docutils literal"><span class="pre">TINY_size</span></tt>
696
- macro is invoked by <tt class="docutils literal"><span class="pre">BOOST_PP_REPEAT</span></tt>,
697
- it generates a different specialization of <tt class="docutils literal"><span
698
-
699
- class="pre">tiny_size</span></tt>. The macro accepts three
700
- parameters.</p>
701
- <ul class="simple">
702
- <li><tt class="docutils literal"><span class="pre">z</span></tt>
703
- is related to the <tt class="docutils literal"><span class="pre">_Z</span></tt>
704
- macro suffix we mentioned earlier. You'll never need to use it
705
- except for optimization purposes, and can safely ignore it for
706
- now.</li>
707
- <li><tt class="docutils literal"><span class="pre">n</span></tt>
708
- is the repetition index. In repeated invocations of <tt class="docutils literal"><span
709
-
710
- class="pre">TINY_size</span></tt>, <tt class="docutils literal"><span
711
-
712
- class="pre">n</span></tt> will be <tt class="docutils literal"><span
713
-
714
- class="pre">0</span></tt>, then <tt class="docutils literal"><span
715
-
716
- class="pre">1</span></tt>, then <tt class="docutils literal"><span
717
-
718
- class="pre">2</span></tt>, and so on.</li>
719
- <li><tt class="docutils literal"><span class="pre">unused</span></tt>,
720
- in this case, will be <tt class="docutils literal"><span class="pre">~</span></tt>
721
- on each repetition. In general, the final argument to a macro
722
- invoked by <tt class="docutils literal"><span class="pre">BOOST_PP_REPEAT</span></tt>
723
- is always the same as its invoker's final argument.</li>
724
- </ul>
725
- <p>Because its <em>replacement-list</em> covers several lines, all
726
- but the last line of <tt class="docutils literal"><span class="pre">TINY_size</span></tt>
727
- is continued with a trailing backslash. The first few of those
728
- lines just invoke <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM_PARAMS</span></tt>
729
- (which we already used in the primary template) to generate
730
- comma-separated lists, so each invocation of <tt class="docutils literal"><span
731
-
732
- class="pre">TINY_size</span></tt> produces something
733
- equivalent to:<a class="footnote-reference" href="#cont" id="id8"
734
-
735
- name="id8">[6]</a></p>
736
- <pre class="literal-block">template &lt;<strong>class T0, class T1, ... class T</strong><em>n-1</em>&gt;
737
- struct tiny_size&lt;
738
- <strong>T0, T1, ... T</strong><em>n-1</em>
739
- <em>...more...</em>
740
- &gt;
741
- : mpl::int_&lt;n&gt; {};
742
- </pre>
743
- <table class="docutils footnote" frame="void" id="cont" rules="none">
744
- <colgroup><col class="label" /><col /></colgroup>
745
- <tbody valign="top">
746
- <tr>
747
- <td class="label"><a class="fn-backref" href="#id8" name="cont">[6]</a></td>
748
- <td>Note that the line continuation characters <em>and</em>
749
- the newlines following them are removed by the preprocessor,
750
- so the resulting code actually appears on a single line in
751
- the preprocessed output.</td>
752
- </tr>
753
- </tbody>
754
- </table>
755
- <!-- @ignore() -->
756
- <p><tt class="docutils literal"><span class="pre">BOOST_PP_COMMA_IF</span></tt>
757
- generates a comma if its numeric argument is not <tt class="docutils literal"><span
758
-
759
- class="pre">0</span></tt>. When <tt class="docutils literal"><span
760
-
761
- class="pre">n</span></tt> is <tt class="docutils literal"><span
762
-
763
- class="pre">0</span></tt>, the list generated by the preceding
764
- line will be empty, and a leading comma directly following the <tt
765
-
766
- class="docutils literal"><span class="pre">&lt;</span></tt>
767
- character would be ill-formed.</p>
768
- <p>The next line uses <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM</span></tt>
769
- to generate <tt class="docutils literal"><span class="pre">TINY_MAX_SIZE-n</span></tt>
770
- comma-separated copies of <tt class="docutils literal"><span class="pre">none</span></tt>.
771
- <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM</span></tt>
772
- is just like <tt class="docutils literal"><span class="pre">BOOST_PP_REPEAT</span></tt>
773
- except that it generates commas between repetitions, so its second
774
- argument (<tt class="docutils literal"><span class="pre">TINY_print</span></tt>,
775
- here) must have the same signature as <tt class="docutils literal"><span
776
-
777
- class="pre">TINY_size</span></tt>. In this case, <tt class="docutils literal"><span
778
-
779
- class="pre">TINY_print</span></tt> ignores its repetition
780
- index <tt class="docutils literal"><span class="pre">n</span></tt>,
781
- and simply yields its third argument, <tt class="docutils literal"><span
782
-
783
- class="pre">none</span></tt>.</p>
784
- <p><tt class="docutils literal"><span class="pre">BOOST_PP_SUB</span></tt>
785
- implements token subtraction. It's crucial to understand that
786
- although the preprocessor <em>itself</em> can evaluate ordinary
787
- arithmetic expressions:</p>
788
- <pre class="literal-block">#define X 3
789
- ...
790
- #if <strong>X - 1 &gt; 0</strong> // OK
791
- <em>whatever</em>
792
- #endif
793
- </pre>
794
- <!-- @compile() -->
795
- <!-- @litre_translator.line_offset -= 7 -->
796
- <p>preprocessor <em>metaprograms</em> can only operate on tokens.
797
- Normally, when a macro in the Preprocessor library expects a
798
- numeric argument, it must be passed as a single token. If we had
799
- written <tt class="docutils literal"><span class="pre">TINY_MAX_SIZE-n</span></tt>
800
- instead of <tt class="docutils literal"><span class="pre">BOOST_PP_SUB(TINY_MAX_SIZE,n)</span></tt>
801
- above, the first argument to <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM</span></tt>
802
- would have contained three tokens at each invocation: first <tt class="docutils literal"><span
803
-
804
- class="pre">3-0</span></tt>, then <tt class="docutils literal"><span
805
-
806
- class="pre">3-1</span></tt>, and finally <tt class="docutils literal"><span
807
-
808
- class="pre">3-2</span></tt>. <tt class="docutils literal"><span
809
-
810
- class="pre">BOOST_PP_SUB</span></tt>, though, generates
811
- single-token results: first <tt class="docutils literal"><span class="pre">3</span></tt>,
812
- then <tt class="docutils literal"><span class="pre">2</span></tt>,
813
- and finally <tt class="docutils literal"><span class="pre">1</span></tt>,
814
- in successive repetitions.</p>
815
- <div class="sidebar">
816
- <p class="first sidebar-title">Naming Conventions</p>
817
- <p class="last">Note that <tt class="docutils literal"><span class="pre">TINY_print</span></tt>
818
- and <tt class="docutils literal"><span class="pre">TINY_size</span></tt>
819
- are <tt class="docutils literal"><span class="pre">#undef</span></tt>'d
820
- immediately
821
- after they're used, with no intervening <tt class="docutils literal"><span
822
-
823
- class="pre">#include</span></tt>s. They can therefore be
824
- thought of as "local" macro definitions. Because the
825
- preprocessor doesn't respect scope boundaries, it's important to
826
- choose names carefully to prevent clashes. We recommend <tt class="docutils literal"><span
827
-
828
- class="pre">PREFIXED_lower_case</span></tt> names for local
829
- macros and <tt class="docutils literal"><span class="pre">PREFIXED_UPPER_CASE</span></tt>
830
- names for global ones. The only exceptions are one-letter
831
- lowercase names, which are safe to use for local macros: No
832
- other header is likely to <tt class="docutils literal"><span class="pre">#define</span></tt>
833
- a global single-letter lowercase macro—that would be <em>very</em>
834
- bad manners.</p>
835
- </div>
836
- </div>
837
- <div class="section" id="vertical-repetition">
838
- <h3><a name="vertical-repetition">A.4.1.2   Vertical Repetition</a></h3>
839
- <p>If you send the previous example through your preprocessor,
840
- you'll see one long line containing something like this:</p>
841
- <pre class="literal-block">template &lt;&gt; struct tiny_size&lt; none , none , none &gt; : mpl::int_&lt;0&gt;
842
- {}; template &lt; class T0&gt; struct tiny_size&lt; T0 , none , none &gt; :
843
- mpl::int_&lt;1&gt; {}; template &lt; class T0 , class T1&gt; struct tiny_size
844
- &lt; T0 , T1 , none &gt; : mpl::int_&lt;2&gt; {};
845
- </pre>
846
- <!-- @compile('all', pop = 1) -->
847
- <p>The distinguishing feature of horizontal repetition is that all
848
- instances of the repeated pattern are generated on the same line
849
- of preprocessed output. For some jobs, like generating the primary
850
- <tt class="docutils literal"><span class="pre">tiny_size</span></tt>
851
- template, that's perfectly appropriate. In this case, however,
852
- there are at least two disadvantages.</p>
853
- <ol class="arabic simple">
854
- <li>It's hard to verify that our metaprogram is doing the right
855
- thing without reformatting the resulting code by hand.</li>
856
- <li>The efficiency of nested horizontal repetitions varies widely
857
- across preprocessors. Each specialization generated by means of
858
- horizontal repetition contains three other horizontal
859
- repetitions: two invocations of <tt class="docutils literal"><span
860
-
861
- class="pre">BOOST_PP_ENUM_PARAMS</span></tt> and one
862
- invocation of <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM</span></tt>.
863
- When <tt class="docutils literal"><span class="pre">TINY_MAX_SIZE</span></tt>
864
- is <tt class="docutils literal"><span class="pre">3</span></tt>,
865
- you'll probably never care, but on at least one preprocessor
866
- still in use today, compilation begins to slow noticeably when <tt
867
-
868
- class="docutils literal"><span class="pre">TINY_MAX_SIZE</span></tt>
869
- reaches <tt class="docutils literal"><span class="pre">8</span></tt>.<a
870
-
871
- class="footnote-reference" href="#nest" id="id9" name="id9">[7]</a></li>
872
- </ol>
873
- <blockquote>
874
- <table class="docutils footnote" frame="void" id="nest" rules="none">
875
- <colgroup><col class="label" /><col /></colgroup>
876
- <tbody valign="top">
877
- <tr>
878
- <td class="label"><a class="fn-backref" href="#id9" name="nest">[7]</a></td>
879
- <td>That said, other preprocessors can handle 256 * 256
880
- nested repetitions without any speed problems whatsoever.</td>
881
- </tr>
882
- </tbody>
883
- </table>
884
- </blockquote>
885
- <p>The solution to these problems, naturally, is <strong>vertical
886
- repetition</strong>, which generates instances of a pattern
887
- across multiple lines. The Preprocessor library provides two means
888
- of vertical repetition: <strong>local iteration</strong> and <strong>file
889
- iteration</strong>.</p>
890
- <div class="section" id="local-iteration">
891
- <h4><a name="local-iteration">Local Iteration</a></h4>
892
- <p>The most expedient way to demonstrate local iteration in our
893
- example is to replace the invocation of <tt class="docutils literal"><span
894
-
895
- class="pre">BOOST_PP_REPEAT</span></tt> with the following:</p>
896
- <pre class="literal-block">#include &lt;boost/preprocessor/<strong>iteration/local.hpp</strong>&gt;
897
-
898
- #define BOOST_PP_LOCAL_MACRO(n) TINY_size(~, n, ~)
899
- #define BOOST_PP_LOCAL_LIMITS (0, <strong>TINY_MAX_SIZE - 1</strong>)
900
- <strong>#include</strong> BOOST_PP_LOCAL_ITERATE()
901
- </pre>
902
- <!-- @compile('all', pop = 1) -->
903
- <p>Local iteration repeatedly invokes the user-defined macro with
904
- the special name <tt class="docutils literal"><span class="pre">BOOST_PP_LOCAL_MACRO</span></tt>,
905
- whose argument will be an iteration index. Since we already had
906
- <tt class="docutils literal"><span class="pre">TINY_size</span></tt>
907
- lying around, we've just defined <tt class="docutils literal"><span
908
-
909
- class="pre">BOOST_PP_LOCAL_MACRO</span></tt> to invoke it.
910
- The range of iteration indices are given by another user-defined
911
- macro, <tt class="docutils literal"><span class="pre">BOOST_PP_LOCAL_LIMITS</span></tt>,
912
- which must expand to a parenthesized pair of integer values
913
- representing the <em>inclusive</em> range of index values
914
- passed to <tt class="docutils literal"><span class="pre">BOOST_PP_LOCAL_MACRO</span></tt>.
915
- Note that this is one of the rare places where the library
916
- expects a numeric argument that can be an expression consisting
917
- of multiple tokens.</p>
918
- <p>Finally, the repetition is initiated by <tt class="docutils literal"><span
919
-
920
- class="pre">#include</span></tt>-ing the result of invoking
921
- <tt class="docutils literal"><span class="pre">BOOST_PP_LOCAL_ITERATE</span></tt>,
922
- which will ultimately be a file in the Preprocessor library
923
- itself. You may find it surprising that many preprocessors can
924
- handle repeated file inclusion more quickly than nested
925
- horizontal repetition, but that is in fact the case.</p>
926
- <p>If we throw the new example at our preprocessor, we'll see the
927
- following, on three separate lines in the output:</p>
928
- <pre class="literal-block">template &lt;&gt; struct tiny_size&lt; none , none , none &gt; : mpl::int_&lt;0&gt;
929
- {};
930
-
931
- template &lt; class T0&gt; struct tiny_size&lt; T0 , none , none &gt; : mpl::
932
- int_&lt;1&gt; {};
933
-
934
- template &lt; class T0 , class T1&gt; struct tiny_size&lt; T0 , T1 , none
935
- &gt; : mpl::int_&lt;2&gt; {};
936
- </pre>
937
- <!-- @compile('all', pop = 1) -->
938
- <p>That represents a great improvement in verifiability, but it's
939
- still not ideal. As <tt class="docutils literal"><span class="pre">TINY_MAX_SIZE</span></tt>
940
- grows, it gets harder and harder to see that the pattern is
941
- generating what we'd like. If we could get some more line breaks
942
- into the output it would retain a more recognizable form.</p>
943
- <p>Both repetition methods we've used so far have another
944
- drawback, though it doesn't show up in this example. Consider
945
- what would happen if <tt class="docutils literal"><span class="pre">tiny_size</span></tt>
946
- had a member function that we wanted to debug. If you've ever
947
- tried to use a debugger to step through a function generated by
948
- a preprocessor macro, you know that it's a frustrating
949
- experience at best: The debugger shows you the line from which
950
- the macro was ultimately invoked, which usually looks nothing at
951
- all like the code that was generated. Worse, as far as the
952
- debugger is concerned, <em>every</em> statement in that
953
- generated function occupies that same line.</p>
954
- </div>
955
- <div class="section" id="file-iteration">
956
- <h4><a name="file-iteration">File Iteration</a></h4>
957
- <p>Clearly, debuggability depends on preserving the association
958
- between generated code and the lines in the source file that
959
- describe the code pattern. File iteration generates pattern
960
- instances by repeatedly <tt class="docutils literal"><span class="pre">#include</span></tt>-ing
961
- the same source file. The effect of file iteration on
962
- debuggability is similar to that of templates: Although separate
963
- instances appear to occupy the same source lines in the
964
- debugger, we do have the experience of stepping through the
965
- function's source code.</p>
966
- <p>To apply file iteration in our example, we can replace our
967
- earlier local iteration code and the definition of <tt class="docutils literal"><span
968
-
969
- class="pre">TINY_size</span></tt>, with:</p>
970
- <pre class="literal-block">#include &lt;boost/preprocessor/iteration/iterate.hpp&gt;
971
- #define BOOST_PP_ITERATION_LIMITS (0, TINY_MAX_SIZE - 1)
972
- #define BOOST_PP_FILENAME_1 "tiny_size_spec.hpp"
973
- #include BOOST_PP_ITERATE()
974
- </pre>
975
- <p><tt class="docutils literal"><span class="pre">BOOST_PP_ITERATION_LIMITS</span></tt>
976
- follows the same pattern as <tt class="docutils literal"><span
977
-
978
- class="pre">BOOST_PP_LOCAL_LIMITS</span></tt> did, allowing
979
- us to specify an inclusive range of iteration indices. <tt class="docutils literal"><span
980
-
981
- class="pre">BOOST_PP_FILENAME_1</span></tt> specifies the
982
- name of the file to repeatedly <tt class="docutils literal"><span
983
-
984
- class="pre">#include</span></tt> (we'll show you that file
985
- in a moment). The trailing <tt class="docutils literal"><span class="pre">1</span></tt>
986
- indicates that this is the first nesting level of file
987
- iteration—should we need to invoke file iteration again from
988
- within <tt class="docutils literal"><span class="pre">tiny_size_spec.hpp</span></tt>,
989
- we'd need to use <tt class="docutils literal"><span class="pre">BOOST_PP_FILENAME_2</span></tt>
990
- instead.</p>
991
- <p>The contents of <tt class="docutils literal"><span class="pre">tiny_size_spec.hpp</span></tt>
992
- should look familiar to you; most of it is the same as <tt class="docutils literal"><span
993
-
994
- class="pre">TINY_size</span></tt>'s <em>replacement-list</em>,
995
- without the backslashes:</p>
996
- <pre class="literal-block">#define n BOOST_PP_ITERATION()
997
-
998
- template &lt;BOOST_PP_ENUM_PARAMS(n, class T)&gt;
999
- struct tiny_size&lt;
1000
- BOOST_PP_ENUM_PARAMS(n,T)
1001
- BOOST_PP_COMMA_IF(n)
1002
- BOOST_PP_ENUM(BOOST_PP_SUB(TINY_MAX_SIZE,n), TINY_print, none)
1003
- &gt;
1004
- : mpl::int_&lt;n&gt; {};
1005
-
1006
- #undef n
1007
- </pre>
1008
- <!-- @import tempfile, os
1009
- open(os.path.join(tempfile.gettempdir(),'tiny_size_spec.hpp'), 'w' ).write(str(example))ignore()vertical_options = ['-I'+tempfile.gettempdir(), '-c']
1010
- compile('all', options = vertical_options, pop = 1) -->
1011
- <p>The Library transmits the iteration index to us in the result
1012
- of <tt class="docutils literal"><span class="pre">BOOST_PP_ITERATION()</span></tt>;
1013
- <tt class="docutils literal"><span class="pre">n</span></tt> is
1014
- nothing more than a convenient local macro used to reduce
1015
- syntactic noise. Note that we didn't use <tt class="docutils literal"><span
1016
-
1017
- class="pre">#include</span></tt> guards because we need <tt
1018
-
1019
- class="docutils literal"><span class="pre">tiny_size_spec.hpp</span></tt>
1020
- to be processed multiple times.</p>
1021
- <p>The preprocessed result should now preserve the line structure
1022
- of the pattern and be more verifiable for larger values of <tt
1023
-
1024
- class="docutils literal"><span class="pre">TINY_MAX_SIZE</span></tt>.
1025
- For instance, when <tt class="docutils literal"><span class="pre">TINY_MAX_SIZE</span></tt>
1026
- is <tt class="docutils literal"><span class="pre">8</span></tt>,
1027
- the following excerpt appears in the output of GCC's
1028
- preprocessing phase:</p>
1029
- <pre class="literal-block"><em>...</em>
1030
- template &lt; class T0 , class T1 , class T2 , class T3&gt;
1031
- struct tiny_size&lt;
1032
- T0 , T1 , T2 , T3
1033
- ,
1034
- none , none , none , none
1035
- &gt;
1036
- : mpl::int_&lt;4&gt; {};
1037
-
1038
- template &lt; class T0 , class T1 , class T2 , class T3 , class T4&gt;
1039
- struct tiny_size&lt;
1040
- T0 , T1 , T2 , T3 , T4
1041
- ,
1042
- none , none , none
1043
- &gt;
1044
- : mpl::int_&lt;5&gt; {};
1045
- <em>...etc.</em>
1046
- </pre>
1047
- <!-- @compile('all', options = vertical_options + ['-DTINY_MAX_SIZE=8']) -->
1048
- </div>
1049
- <div class="section" id="self-iteration">
1050
- <h4><a name="self-iteration">Self-Iteration</a></h4>
1051
- <p>Creating an entirely new file like <tt class="docutils literal"><span
1052
-
1053
- class="pre">tiny_size_spec.hpp</span></tt> each time we want
1054
- to express a trivial code pattern for file repetition can be
1055
- inconvenient. Fortunately, the library provides a macro that
1056
- allows us to place the pattern right in the file that invokes
1057
- the iteration. <tt class="docutils literal"><span class="pre">BOOST_PP_IS_ITERATING</span></tt>
1058
- is defined to a nonzero value whenever we're inside an
1059
- iteration. We can use that value to select between the part of a
1060
- file that invokes the iteration and the part that provides the
1061
- repeated pattern. Here's a complete <tt class="docutils literal"><span
1062
-
1063
- class="pre">tiny_size.hpp</span></tt> file that demonstrates
1064
- self-iteration. Note in particular the placement and use of the
1065
- <tt class="docutils literal"><span class="pre">#include</span></tt>
1066
- guard <tt class="docutils literal"><span class="pre">TINY_SIZE_HPP_INCLUDED</span></tt>:</p>
1067
- <pre class="literal-block">#ifndef <strong>BOOST_PP_IS_ITERATING</strong>
1068
-
1069
- # ifndef TINY_SIZE_HPP_INCLUDED
1070
- # define TINY_SIZE_HPP_INCLUDED
1071
-
1072
- # include &lt;boost/preprocessor/repetition.hpp&gt;
1073
- # include &lt;boost/preprocessor/arithmetic/sub.hpp&gt;
1074
- # include &lt;boost/preprocessor/punctuation/comma_if.hpp&gt;
1075
- # include &lt;boost/preprocessor/iteration/iterate.hpp&gt;
1076
-
1077
- # ifndef TINY_MAX_SIZE
1078
- # define TINY_MAX_SIZE 3 // default maximum size is 3
1079
- # endif
1080
-
1081
- // primary template
1082
- template &lt;BOOST_PP_ENUM_PARAMS(TINY_MAX_SIZE, class T)&gt;
1083
- struct tiny_size
1084
- : mpl::int_&lt;TINY_MAX_SIZE&gt;
1085
- {};
1086
-
1087
- // generate specializations
1088
- # define BOOST_PP_ITERATION_LIMITS (0, TINY_MAX_SIZE - 1)
1089
- # define BOOST_PP_FILENAME_1 "tiny_size.hpp" // this file
1090
- # include BOOST_PP_ITERATE()
1091
-
1092
- # endif // TINY_SIZE_HPP_INCLUDED
1093
-
1094
- #else // <strong>BOOST_PP_IS_ITERATING</strong>
1095
-
1096
- # define n BOOST_PP_ITERATION()
1097
-
1098
- # define TINY_print(z, n, data) data
1099
-
1100
- // specialization pattern
1101
- template &lt;BOOST_PP_ENUM_PARAMS(n, class T)&gt;
1102
- struct tiny_size&lt;
1103
- BOOST_PP_ENUM_PARAMS(n,T)
1104
- BOOST_PP_COMMA_IF(n)
1105
- BOOST_PP_ENUM(BOOST_PP_SUB(TINY_MAX_SIZE,n), TINY_print, none)
1106
- &gt;
1107
- : mpl::int_&lt;n&gt; {};
1108
-
1109
- # undef TINY_print
1110
- # undef n
1111
-
1112
- #endif // <strong>BOOST_PP_IS_ITERATING</strong>
1113
- </pre>
1114
- <!-- @compile(source_file = 'tiny_size.hpp') --> </div>
1115
- <div class="section" id="more">
1116
- <h4><a name="more">More</a></h4>
1117
- <p>There's a good deal more to file iteration than what we've been
1118
- able to show you here. For more details, we encourage you to
1119
- delve into the library's electronic documentation of <tt class="docutils literal"><span
1120
-
1121
- class="pre">BOOST_PP_ITERATE</span></tt> and friends. Also,
1122
- it's important to note that no single technique for repetition
1123
- is superior to any other: Your choice may depend on convenience,
1124
- verifiability, debuggability, compilation speed, and your own
1125
- sense of "logical coherence."</p>
1126
- </div>
1127
- </div>
1128
- </div>
1129
- <div class="section" id="arithmetic-logical-and-comparison-operations">
1130
- <h2><a name="arithmetic-logical-and-comparison-operations">A.4.2   Arithmetic,
1131
- Logical, and Comparison Operations</a></h2>
1132
- <p>As we mentioned earlier, many of the Preprocessor library
1133
- interfaces require single-token numeric arguments, and when those
1134
- numbers need to be computed arithmetically, straightforward
1135
- arithmetic expressions are inappropriate. We used <tt class="docutils literal"><span
1136
-
1137
- class="pre">BOOST_PP_SUB</span></tt> to subtract two numeric
1138
- tokens in our <tt class="docutils literal"><span class="pre">tiny_size</span></tt>
1139
- examples. The library contains a suite of operations for
1140
- non-negative integral token arithmetic in its <tt class="docutils literal"><span
1141
-
1142
- class="pre">arithmetic/</span></tt> subdirectory, as shown in
1143
- Table A.1</p>
1144
- <table border="1" class="docutils">
1145
- <caption>Preprocessor Library Arithmetic Operations</caption> <colgroup>
1146
- <col width="44%" /> <col width="56%" /> </colgroup>
1147
- <thead valign="bottom">
1148
- <tr>
1149
- <th>Expression</th>
1150
- <th>Value of Single Token Result</th>
1151
- </tr>
1152
- </thead>
1153
- <tbody valign="top">
1154
- <tr>
1155
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_ADD(x,y)</span></tt></td>
1156
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1157
-
1158
- class="pre">+</span> <span class="pre">y</span></tt></td>
1159
- </tr>
1160
- <tr>
1161
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_DEC(x)</span></tt></td>
1162
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1163
-
1164
- class="pre">-</span> <span class="pre">1</span></tt></td>
1165
- </tr>
1166
- <tr>
1167
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_DIV(x,y)</span></tt></td>
1168
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1169
-
1170
- class="pre">/</span> <span class="pre">y</span></tt></td>
1171
- </tr>
1172
- <tr>
1173
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_INC(x)</span></tt></td>
1174
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1175
-
1176
- class="pre">+</span> <span class="pre">1</span></tt></td>
1177
- </tr>
1178
- <tr>
1179
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_MOD(x,y)</span></tt></td>
1180
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1181
-
1182
- class="pre">%</span> <span class="pre">y</span></tt></td>
1183
- </tr>
1184
- <tr>
1185
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_MUL(x,y)</span></tt></td>
1186
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1187
-
1188
- class="pre">*</span> <span class="pre">y</span></tt></td>
1189
- </tr>
1190
- <tr>
1191
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SUB(x,y)</span></tt></td>
1192
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1193
-
1194
- class="pre">-</span> <span class="pre">y</span></tt></td>
1195
- </tr>
1196
- </tbody>
1197
- </table>
1198
- <p>The <tt class="docutils literal"><span class="pre">logical/</span></tt>
1199
- subdirectory contains the convenient Boolean token operations shown
1200
- in Table A.2 and the more efficient operations shown in Table A.3,
1201
- which require that their operands are either <tt class="docutils literal"><span
1202
-
1203
- class="pre">0</span></tt> or <tt class="docutils literal"><span
1204
-
1205
- class="pre">1</span></tt> (a single bit).</p>
1206
- <table border="1" class="docutils">
1207
- <caption>Preprocessor Library Integer Logical Operations</caption> <colgroup>
1208
- <col width="44%" /> <col width="56%" /> </colgroup>
1209
- <thead valign="bottom">
1210
- <tr>
1211
- <th>Expression</th>
1212
- <th>Value of Single Token Result</th>
1213
- </tr>
1214
- </thead>
1215
- <tbody valign="top">
1216
- <tr>
1217
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_AND(x,y)</span></tt></td>
1218
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1219
-
1220
- class="pre">&amp;&amp;</span> <span class="pre">y</span></tt></td>
1221
- </tr>
1222
- <tr>
1223
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_NOR(x,y)</span></tt></td>
1224
- <td><tt class="docutils literal"><span class="pre">!(x</span> <span
1225
-
1226
- class="pre">||</span> <span class="pre">y)</span></tt></td>
1227
- </tr>
1228
- <tr>
1229
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_OR(x,y)</span></tt></td>
1230
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1231
-
1232
- class="pre">||</span> <span class="pre">y</span></tt></td>
1233
- </tr>
1234
- <tr>
1235
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_XOR(x,y)</span></tt></td>
1236
- <td><tt class="docutils literal"><span class="pre">(bool)x</span>
1237
- <span class="pre">!=</span> <span class="pre">(bool)y</span>  
1238
- <span class="pre">?</span> <span class="pre">1</span> <span
1239
-
1240
- class="pre">:</span> <span class="pre">0</span></tt></td>
1241
- </tr>
1242
- <tr>
1243
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_NOT(x)</span></tt></td>
1244
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1245
-
1246
- class="pre">?</span> <span class="pre">0</span> <span class="pre">:</span>
1247
- <span class="pre">1</span></tt></td>
1248
- </tr>
1249
- <tr>
1250
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_BOOL(x)</span></tt></td>
1251
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1252
-
1253
- class="pre">?</span> <span class="pre">1</span> <span class="pre">:</span>
1254
- <span class="pre">0</span></tt></td>
1255
- </tr>
1256
- </tbody>
1257
- </table>
1258
- <table border="1" class="docutils">
1259
- <caption>Preprocessor Library Bit Logical Operations</caption> <colgroup>
1260
- <col width="44%" /> <col width="56%" /> </colgroup>
1261
- <thead valign="bottom">
1262
- <tr>
1263
- <th>Expression</th>
1264
- <th>Value of Single Token Result</th>
1265
- </tr>
1266
- </thead>
1267
- <tbody valign="top">
1268
- <tr>
1269
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_BITAND(x,y)</span></tt></td>
1270
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1271
-
1272
- class="pre">&amp;&amp;</span> <span class="pre">y</span></tt></td>
1273
- </tr>
1274
- <tr>
1275
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_BITNOR(x,y)</span></tt></td>
1276
- <td><tt class="docutils literal"><span class="pre">!(x</span> <span
1277
-
1278
- class="pre">||</span> <span class="pre">y)</span></tt></td>
1279
- </tr>
1280
- <tr>
1281
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_BITOR(x,y)</span></tt></td>
1282
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1283
-
1284
- class="pre">||</span> <span class="pre">y</span></tt></td>
1285
- </tr>
1286
- <tr>
1287
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_BITXOR(x,y)</span></tt></td>
1288
- <td><tt class="docutils literal"><span class="pre">(bool)x</span>
1289
- <span class="pre">!=</span> <span class="pre">(bool)y</span>  
1290
- <span class="pre">?</span> <span class="pre">1</span> <span
1291
-
1292
- class="pre">:</span> <span class="pre">0</span></tt></td>
1293
- </tr>
1294
- <tr>
1295
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_COMPL(x)</span></tt></td>
1296
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1297
-
1298
- class="pre">?</span> <span class="pre">0</span> <span class="pre">:</span>
1299
- <span class="pre">1</span></tt></td>
1300
- </tr>
1301
- </tbody>
1302
- </table>
1303
- <p>Finally, the <tt class="docutils literal"><span class="pre">comparison/</span></tt>
1304
- subdirectory provides the token integral comparison operations shown
1305
- in Table A.4.</p>
1306
- <table border="1" class="docutils">
1307
- <caption>Preprocessor Library Comparison Operations</caption> <colgroup>
1308
- <col width="46%" /> <col width="54%" /> </colgroup>
1309
- <thead valign="bottom">
1310
- <tr>
1311
- <th>Expression</th>
1312
- <th>Value of Single Token Result</th>
1313
- </tr>
1314
- </thead>
1315
- <tbody valign="top">
1316
- <tr>
1317
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_EQUAL(x,y)</span></tt></td>
1318
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1319
-
1320
- class="pre">==</span> <span class="pre">y</span>   <span
1321
-
1322
- class="pre">?</span> <span class="pre">1</span> <span class="pre">:</span>
1323
- <span class="pre">0</span></tt></td>
1324
- </tr>
1325
- <tr>
1326
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_NOT_EQUAL(x,y)</span></tt></td>
1327
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1328
-
1329
- class="pre">!=</span> <span class="pre">y</span>   <span
1330
-
1331
- class="pre">?</span> <span class="pre">1</span> <span class="pre">:</span>
1332
- <span class="pre">0</span></tt></td>
1333
- </tr>
1334
- <tr>
1335
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_LESS(x,y)</span></tt></td>
1336
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1337
-
1338
- class="pre">&lt;</span> <span class="pre">y</span>    <span
1339
-
1340
- class="pre">?</span> <span class="pre">1</span> <span class="pre">:</span>
1341
- <span class="pre">0</span></tt></td>
1342
- </tr>
1343
- <tr>
1344
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_LESS_EQUAL(x,y)</span></tt></td>
1345
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1346
-
1347
- class="pre">&lt;=</span> <span class="pre">y</span>   <span
1348
-
1349
- class="pre">?</span> <span class="pre">1</span> <span class="pre">:</span>
1350
- <span class="pre">0</span></tt></td>
1351
- </tr>
1352
- <tr>
1353
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_GREATER(x,y)</span></tt></td>
1354
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1355
-
1356
- class="pre">&gt;</span> <span class="pre">y</span>    <span
1357
-
1358
- class="pre">?</span> <span class="pre">1</span> <span class="pre">:</span>
1359
- <span class="pre">0</span></tt></td>
1360
- </tr>
1361
- <tr>
1362
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_GREATER_EQUAL(x,y)</span></tt></td>
1363
- <td><tt class="docutils literal"><span class="pre">x</span> <span
1364
-
1365
- class="pre">&gt;=</span> <span class="pre">y</span>   <span
1366
-
1367
- class="pre">?</span> <span class="pre">1</span> <span class="pre">:</span>
1368
- <span class="pre">0</span></tt></td>
1369
- </tr>
1370
- </tbody>
1371
- </table>
1372
- <p>Because it's common to have a choice among several workable
1373
- comparison operators, it may be useful to know that <tt class="docutils literal"><span
1374
-
1375
- class="pre">BOOST_PP_EQUAL</span></tt> and <tt class="docutils literal"><span
1376
-
1377
- class="pre">BOOST_PP_NOT_EQUAL</span></tt> are likely to be O(1)
1378
- while the other comparison operators are generally slower.</p>
1379
- </div>
1380
- <div class="section" id="control-structures">
1381
- <h2><a name="control-structures">A.4.3   Control Structures</a></h2>
1382
- <p>In its <tt class="docutils literal"><span class="pre">control/</span></tt>
1383
- directory, the Preprocessor Library supplies a macro <tt class="docutils literal"><span
1384
-
1385
- class="pre">BOOST_PP_IF(c,t,f)</span></tt> that fulfills a
1386
- similar role to the one filled by <tt class="docutils literal"><span
1387
-
1388
- class="pre">mpl::if_</span></tt>. To explore the "control"
1389
- group, we'll generate code for a framework of generic function
1390
- objects: the Boost Function Library.<a class="footnote-reference" href="#function"
1391
-
1392
- id="id10" name="id10">[8]</a> <tt class="docutils literal"><span
1393
-
1394
- class="pre">boost::function</span></tt> is partially specialized
1395
- to match function type arguments of each arity up to the maximum
1396
- supported by the library:</p>
1397
- <pre class="literal-block">template &lt;class Signature&gt; struct function; // primary template
1398
-
1399
- template &lt;class R&gt; // arity = 0
1400
- struct function&lt;R()&gt;
1401
- <em>definition not shown...</em>
1402
-
1403
- template &lt;class R, class A0&gt; // arity = 1
1404
- struct function&lt;R(A0)&gt;
1405
- <em>definition not shown...</em>
1406
-
1407
- template &lt;class R, class A0, class A1&gt; // arity = 2
1408
- struct function&lt;R(A0,A1)&gt;
1409
- <em>definition not shown...</em>
1410
-
1411
- template &lt;class R, class A0, class A1, class A2&gt; // arity = 3
1412
- struct function&lt;R(A0,A1,A2)&gt;
1413
- <em>definition not shown...</em>
1414
-
1415
- <em>etc.</em>
1416
- </pre>
1417
- <!-- @example.replace(')>', ')>;')
1418
- compile() -->
1419
- <table class="docutils footnote" frame="void" id="function" rules="none">
1420
- <colgroup><col class="label" /><col /></colgroup>
1421
- <tbody valign="top">
1422
- <tr>
1423
- <td class="label"><a class="fn-backref" href="#id10" name="function">[8]</a></td>
1424
- <td>We touched briefly on the design of Boost Function when we
1425
- discussed type erasure in Chapter 9. See the Function library
1426
- documentation at <tt class="docutils literal"><span class="pre">boost_1_32_0/libs/function/index.html</span></tt>
1427
- on the CD that accompanies this book for more information.</td>
1428
- </tr>
1429
- </tbody>
1430
- </table>
1431
- <p>We've already covered a few strategies that can be used to generate
1432
- the pattern above, so we won't belabor that part of the problem; the
1433
- file iteration approach we used for <tt class="docutils literal"><span
1434
-
1435
- class="pre">tiny_size</span></tt> would be fine:</p>
1436
- <pre class="literal-block">#ifndef BOOST_PP_IS_ITERATING
1437
-
1438
- # ifndef BOOST_FUNCTION_HPP_INCLUDED
1439
- # define BOOST_FUNCTION_HPP_INCLUDED
1440
-
1441
- # include &lt;boost/preprocessor/repetition.hpp&gt;
1442
- # include &lt;boost/preprocessor/iteration/iterate.hpp&gt;
1443
-
1444
- # ifndef FUNCTION_MAX_ARITY
1445
- # define FUNCTION_MAX_ARITY 15
1446
- # endif
1447
-
1448
- <strong>template &lt;class Signature&gt; struct function;</strong> // primary template
1449
-
1450
- // generate specializations
1451
- # define BOOST_PP_ITERATION_LIMITS (0, FUNCTION_MAX_ARITY)
1452
- # define BOOST_PP_FILENAME_1 "boost/function.hpp" // this file
1453
- # include BOOST_PP_ITERATE()
1454
-
1455
- # endif // BOOST_FUNCTION_HPP_INCLUDED
1456
-
1457
- #else // BOOST_PP_IS_ITERATING
1458
-
1459
- # define n BOOST_PP_ITERATION()
1460
-
1461
- // specialization pattern
1462
- <strong>template &lt;class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class A)&gt;</strong>
1463
- <strong>struct function&lt;R ( BOOST_PP_ENUM_PARAMS(n,A) )&gt;</strong>
1464
- <em>definition not shown...</em>
1465
-
1466
- # undef n
1467
-
1468
- #endif // BOOST_PP_IS_ITERATING
1469
- </pre>
1470
- <p><tt class="docutils literal"><span class="pre">BOOST_PP_ENUM_TRAILING_PARAMS</span></tt>,
1471
- used above, is just like <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM_PARAMS</span></tt>
1472
- except that when its first argument is not <tt class="docutils literal"><span
1473
-
1474
- class="pre">0</span></tt>, it generates a leading comma.</p>
1475
- <!-- @example.replace_emphasis(';//')
1476
- tmpdir = tempfile.gettempdir()tmpboost = os.path.join(tmpdir,'boost')try: os.mkdir(tmpboost)except: pass
1477
- tmp_boost_function = os.path.join(tmpdir, 'boost/function.hpp')compile( options = vertical_options , source_file = tmp_boost_function
1478
- , pop = None) -->
1479
- <div class="section" id="argument-selection">
1480
- <h3><a name="argument-selection">A.4.3.1   Argument Selection</a></h3>
1481
- <p>For the sake of interoperability with C++ standard library
1482
- algorithms, it might be nice if <tt class="docutils literal"><span
1483
-
1484
- class="pre">function</span></tt>s of one or two arguments were
1485
- derived from appropriate specializations of <tt class="docutils literal"><span
1486
-
1487
- class="pre">std::unary_function</span></tt> or <tt class="docutils literal"><span
1488
-
1489
- class="pre">std::binary_function</span></tt>, respectively.<a
1490
-
1491
- class="footnote-reference" href="#ebo" id="id11" name="id11">[9]</a>
1492
- <tt class="docutils literal"><span class="pre">BOOST_PP_IF</span></tt>
1493
- is a great tool for dealing with special cases:</p>
1494
- <pre class="literal-block"># include &lt;boost/preprocessor/control/if.hpp&gt;
1495
- # include &lt;boost/preprocessor/comparison/equal.hpp&gt;
1496
-
1497
- // specialization pattern
1498
- template &lt;class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class A)&gt;
1499
- struct function&lt;R ( BOOST_PP_ENUM_PARAMS(n,A) )&gt;
1500
- BOOST_PP_IF(
1501
- BOOST_PP_EQUAL(n,2), <strong>: std::binary_function&lt;A0, A1, R&gt;</strong>
1502
- , BOOST_PP_IF(
1503
- BOOST_PP_EQUAL(n,1), <strong>: std::unary_function&lt;A0, R&gt;</strong>
1504
- , <em>...empty argument...</em>
1505
- )
1506
- )
1507
- { <em>...class body omitted...</em> };
1508
- </pre>
1509
- <!-- @pp_failure() -->
1510
- <table class="docutils footnote" frame="void" id="ebo" rules="none">
1511
- <colgroup><col class="label" /><col /></colgroup>
1512
- <tbody valign="top">
1513
- <tr>
1514
- <td class="label"><a class="fn-backref" href="#id11" name="ebo">[9]</a></td>
1515
- <td>While derivation from <tt class="docutils literal"><span
1516
-
1517
- class="pre">std::unary_function</span></tt> or <tt class="docutils literal"><span
1518
-
1519
- class="pre">std::binary_function</span></tt> might be
1520
- necessary for interoperability with some older library
1521
- implementations, it may inhibit the Empty Base Optimization
1522
- (EBO) from taking effect when two such derived classes are
1523
- part of the same object. For more information, see section
1524
- 9.4. In general, it's better to expose <tt class="docutils literal"><span
1525
-
1526
- class="pre">first_argument_type</span></tt>, <tt class="docutils literal"><span
1527
-
1528
- class="pre">second_argument_type</span></tt>, and <tt class="docutils literal"><span
1529
-
1530
- class="pre">result_type</span></tt> <tt class="docutils literal"><span
1531
-
1532
- class="pre">typedef</span></tt>s directly.</td>
1533
- </tr>
1534
- </tbody>
1535
- </table>
1536
- <p>Well, our first attempt has run into several problems. First off,
1537
- you're not allowed to pass an empty argument to the preprocessor.<a
1538
-
1539
- class="footnote-reference" href="#c99" id="id12" name="id12">[3]</a>
1540
- Secondly, because angle brackets don't get special treatment, the
1541
- commas in the <tt class="docutils literal"><span class="pre">std::unary_function</span></tt>
1542
- and <tt class="docutils literal"><span class="pre">std::binary_function</span></tt>
1543
- specializations above are treated as macro argument separators,
1544
- and the preprocessor will complain that we've passed the wrong
1545
- number of arguments to <tt class="docutils literal"><span class="pre">BOOST_PP_IF</span></tt>
1546
- in two places.</p>
1547
- <p>Because it captures all of the issues, let's focus on the inner <tt
1548
-
1549
- class="docutils literal"><span class="pre">BOOST_PP_IF</span></tt>
1550
- invocation for a moment. The strategy that <tt class="docutils literal"><span
1551
-
1552
- class="pre">mpl::eval_if</span></tt> uses, of selecting a
1553
- nullary function to invoke, could work nicely here. The
1554
- preprocessor doesn't have a direct analogue for <tt class="docutils literal"><span
1555
-
1556
- class="pre">mpl::eval_if</span></tt>, but it doesn't really
1557
- need one: We can get the right effect by adding a second set of
1558
- parentheses to <tt class="docutils literal"><span class="pre">BOOST_PP_IF</span></tt>.</p>
1559
- <pre class="literal-block">#define BOOST_FUNCTION_unary() : std::unary_function&lt;A0,R&gt;
1560
- #define BOOST_FUNCTION_empty() // nothing
1561
-
1562
- ...
1563
-
1564
- , BOOST_PP_IF(
1565
- BOOST_PP_EQUAL(n,1), BOOST_FUNCTION_unary
1566
- , BOOST_FUNCTION_empty
1567
- )<strong>()</strong>
1568
-
1569
- #undef BOOST_FUNCTION_empty
1570
- #undef BOOST_FUNCTION_unary
1571
- </pre>
1572
- <!-- @ignore() -->
1573
- <p>A nullary macro that generates nothing is so commonly needed that
1574
- the library's "facilities" group provides one: <tt class="docutils literal"><span
1575
-
1576
- class="pre">BOOST_PP_EMPTY</span></tt>. To complete the
1577
- example we'll need to delay evaluation all the way to the outer <tt
1578
-
1579
- class="docutils literal"><span class="pre">BOOST_PP_IF</span></tt>
1580
- invocation, because <tt class="docutils literal"><span class="pre">std::binary_function&lt;A0,A1,R&gt;</span></tt>
1581
- also has a "comma problem":</p>
1582
- <pre class="literal-block"># include &lt;boost/preprocessor/<strong>facilities/empty.hpp</strong>&gt;
1583
-
1584
- # define BOOST_FUNCTION_binary() : std::binary_function&lt;A0,A1,R&gt;
1585
- # define BOOST_FUNCTION_unary() : std::unary_function&lt;A0,R&gt;
1586
-
1587
- // specialization pattern
1588
- template &lt;class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class A)&gt;
1589
- struct function&lt;R ( BOOST_PP_ENUM_PARAMS(n,A) )&gt;
1590
- BOOST_PP_IF(
1591
- BOOST_PP_EQUAL(n,2), BOOST_FUNCTION_binary
1592
- , BOOST_PP_IF(
1593
- BOOST_PP_EQUAL(n,1), BOOST_FUNCTION_unary
1594
- , <strong>BOOST_PP_EMPTY</strong>
1595
- )
1596
- )<strong>()</strong>
1597
- {
1598
- <em>...class body omitted...</em>
1599
- };
1600
-
1601
- # undef BOOST_FUNCTION_unary
1602
- # undef BOOST_FUNCTION_binary
1603
- # undef n
1604
- </pre>
1605
- <!-- @stack.pop()
1606
- stack[-1].replace('// specialization pattern', '////\n%s\n////' % str(example))compile(source_file = tmp_boost_function, pop = None) -->
1607
- <p>Note that because we happened to be using file iteration, we
1608
- could have also used <tt class="docutils literal"><span class="pre">#if</span></tt>
1609
- on <tt class="docutils literal"><span class="pre">n</span></tt>'s
1610
- value directly:</p>
1611
- <pre class="literal-block"> template &lt;class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class A)&gt;
1612
- struct function&lt;R ( BOOST_PP_ENUM_PARAMS(n,A) )&gt;
1613
- <strong>#if n == 2</strong>
1614
- : std::binary_function&lt;A0, A1, R&gt;
1615
- <strong>#elif n == 1</strong>
1616
- : std::unary_function&lt;A0, R&gt;
1617
- <strong>#endif</strong>
1618
- </pre>
1619
- <!-- @stack.pop()
1620
- stack[-1].sub( r'////.*////', '////\n%s\n////' % str(example), flags = re.DOTALL)compile(source_file = tmp_boost_function, pop = None) -->
1621
- <p><tt class="docutils literal"><span class="pre">BOOST_PP_IF</span></tt>
1622
- has the advantage of enabling us to encapsulate the logic in a
1623
- reusable macro, parameterized on <tt class="docutils literal"><span
1624
-
1625
- class="pre">n</span></tt>, that is compatible with all
1626
- repetition constructs:</p>
1627
- <pre class="literal-block">#define BOOST_FUNCTION_BASE(n) \
1628
- BOOST_PP_IF(BOOST_PP_EQUAL(n,2), BOOST_FUNCTION_binary \
1629
- , BOOST_PP_IF(BOOST_PP_EQUAL(n,1), BOOST_FUNCTION_unary \
1630
- , BOOST_PP_EMPTY \
1631
- ) \
1632
- )()
1633
- </pre>
1634
- <!-- @compile(options = ['-E']) --> </div>
1635
- <div class="section" id="other-selection-constructs">
1636
- <h3><a name="other-selection-constructs">A.4.3.2   Other Selection
1637
- Constructs</a></h3>
1638
- <p><tt class="docutils literal"><span class="pre">BOOST_PP_IDENTITY</span></tt>,
1639
- also in the "facilities" group, is an interesting cousin of <tt class="docutils literal"><span
1640
-
1641
- class="pre">BOOST_PP_EMPTY</span></tt>:</p>
1642
- <pre class="literal-block">#define BOOST_PP_IDENTITY(tokens) tokens BOOST_PP_EMPTY
1643
- </pre>
1644
- <!-- @ignore() -->
1645
- <p>You can think of it as creating a nullary macro that returns <tt
1646
-
1647
- class="docutils literal"><span class="pre">tokens</span></tt>:
1648
- When empty parentheses are appended, the trailing <tt class="docutils literal"><span
1649
-
1650
- class="pre">BOOST_PP_EMPTY</span></tt> is expanded leaving
1651
- just <tt class="docutils literal"><span class="pre">tokens</span></tt>
1652
- behind. If we had wanted inheritance from <tt class="docutils literal"><span
1653
-
1654
- class="pre">mpl::empty_base</span></tt> when <tt class="docutils literal"><span
1655
-
1656
- class="pre">function</span></tt>'s arity is not one or two, we
1657
- could have used <tt class="docutils literal"><span class="pre">BOOST_PP_IDENTITY</span></tt>:</p>
1658
- <pre class="literal-block">// specialization pattern
1659
- template &lt;class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class A)&gt;
1660
- struct function&lt;R ( BOOST_PP_ENUM_PARAMS(n,A) )&gt;
1661
- BOOST_PP_IF(
1662
- BOOST_PP_EQUAL(n,2), BOOST_FUNCTION_binary
1663
- , BOOST_PP_IF(
1664
- BOOST_PP_EQUAL(n,1), BOOST_FUNCTION_unary
1665
- , <strong>BOOST_PP_IDENTITY(: mpl::empty_base)</strong>
1666
- )
1667
- )<strong>()</strong>
1668
- {
1669
- <em>...class body omitted...</em>
1670
- };
1671
- </pre>
1672
- <!-- @stack.pop()
1673
- stack[-1].sub( r'////.*////', '////\n%s\n////' % str(example), flags = re.DOTALL)compile(source_file = tmp_boost_function, pop = None) -->
1674
- <p>It's also worth knowing about <tt class="docutils literal"><span
1675
-
1676
- class="pre">BOOST_PP_EXPR_IF</span></tt>, which generates its
1677
- second argument or nothing, depending on the Boolean value of its
1678
- first:</p>
1679
- <pre class="literal-block">#define BOOST_PP_EXPR_IF(c,tokens) \
1680
- BOOST_PP_IF(c,BOOST_PP_IDENTITY(tokens),BOOST_PP_EMPTY)()
1681
- </pre>
1682
- <!-- @example.append(
1683
- 'int BOOST_PP_EXPR_IF(1,main) BOOST_PP_EXPR_IF(0,quack) () {}')compile() -->
1684
- <p>So <tt class="docutils literal"><span class="pre">BOOST_PP_EXPR_IF(1,foo)</span></tt>
1685
- expands to <tt class="docutils literal"><span class="pre">foo</span></tt>,
1686
- while <tt class="docutils literal"><span class="pre">BOOST_PP_EXPR_IF(0,foo)</span></tt>
1687
- expands to nothing.</p>
1688
- </div>
1689
- </div>
1690
- <div class="section" id="token-pasting">
1691
- <h2><a name="token-pasting">A.4.4   Token Pasting</a></h2>
1692
- <p>It would be nice if there were a generic way to access the return
1693
- and parameter types of <em>all</em> function objects, rather than
1694
- just the unary and binary ones. A metafunction returning the
1695
- signature as an MPL sequence would do the trick. We could just
1696
- specialize <tt class="docutils literal"><span class="pre">signature</span></tt>
1697
- for each <tt class="docutils literal"><span class="pre">function</span></tt>
1698
- arity:</p>
1699
- <pre class="literal-block">template &lt;class F&gt; struct signature; // primary template
1700
-
1701
- // partial specializations for boost::function
1702
- template &lt;class R&gt;
1703
- struct signature&lt;function&lt;R()&gt; &gt;
1704
- : mpl::vector1&lt;R&gt; {};
1705
-
1706
- template &lt;class R, class A0&gt;
1707
- struct signature&lt;function&lt;R(A0)&gt; &gt;
1708
- : mpl::vector2&lt;R,A0&gt; {};
1709
-
1710
- template &lt;class R, class A0, class A1&gt;
1711
- struct signature&lt;function&lt;R(A0,A1)&gt; &gt;
1712
- : mpl::vector3&lt;R,A0,A1&gt; {};
1713
-
1714
- ...
1715
- </pre>
1716
- <!-- @example.prepend('template <class T> struct function;')
1717
- compile() -->
1718
- <p>To generate these specializations, we might add the following to
1719
- our pattern:</p>
1720
- <pre class="literal-block">template &lt;class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class A)&gt;
1721
- struct signature&lt;function&lt;R( BOOST_PP_ENUM_PARAMS(n,A) )&gt; &gt;
1722
- : mpl::<strong>BOOST_PP_CAT</strong>(vector,n)&lt;
1723
- R BOOST_PP_ENUM_TRAILING_PARAMS(n,A)
1724
- &gt; {};
1725
- </pre>
1726
- <!-- @stack.pop()
1727
- stack[-1].replace( ';//', ''';// template <class T> struct signature; %s''' % example)
1728
- compile(source_file = tmp_boost_function) -->
1729
- <p><tt class="docutils literal"><span class="pre">BOOST_PP_CAT</span></tt>
1730
- implements <strong>token pasting</strong>; its two arguments are
1731
- "glued" together into a single token. Since this is a
1732
- general-purpose macro, it sits in <tt class="docutils literal"><span
1733
-
1734
- class="pre">cat.hpp</span></tt> at the top level of the
1735
- library's directory tree.</p>
1736
- <p>Although the preprocessor has a built-in token-pasting operator, <tt
1737
-
1738
- class="docutils literal"><span class="pre">##</span></tt>, it only
1739
- works within a macro definition. If we'd used it here, it wouldn't
1740
- have taken effect at all:</p>
1741
- <pre class="literal-block">template &lt;class R&gt;
1742
- struct signature&lt;function&lt;R()&gt; &gt;
1743
- : mpl::<strong>vector##1</strong>&lt;R&gt; {};
1744
-
1745
- template &lt;class R, class A0&gt;
1746
- struct signature&lt;function&lt;R(A0)&gt; &gt;
1747
- : mpl::<strong>vector##2</strong>&lt;R,A0&gt; {};
1748
-
1749
- template &lt;class R, class A0, class A1&gt;
1750
- struct signature&lt;function&lt;R(A0,A1)&gt; &gt;
1751
- : mpl::<strong>vector##3</strong>&lt;R,A0,A1&gt; {};
1752
-
1753
- ...
1754
- </pre>
1755
- <!-- @example.replace('##','')
1756
- example.prepend(''' template <class T> struct function; template <class T> struct signature;''')
1757
- compile() -->
1758
- <p>Also, <tt class="docutils literal"><span class="pre">##</span></tt>
1759
- often yields surprising results by taking effect before its
1760
- arguments have been expanded:</p>
1761
- <pre class="literal-block">#define N 10
1762
- #define VEC(i) vector##i
1763
-
1764
- VEC(N) // vectorN
1765
- </pre>
1766
- <!-- @example.wrap('typedef int vectorN;', 'x;')
1767
- compile() -->
1768
- <p>By contrast, <tt class="docutils literal"><span class="pre">BOOST_PP_CAT</span></tt>
1769
- delays concatenation until after its arguments have been fully
1770
- evaluated:</p>
1771
- <pre class="literal-block">#define N 10
1772
- #define VEC(i) BOOST_PP_CAT(vector,i)
1773
-
1774
- VEC(N) // vector10
1775
- </pre>
1776
- <!-- @example.wrap('''
1777
- #include <boost/preprocessor/cat.hpp> typedef int vector10; ''', 'x;')compile() -->
1778
- </div>
1779
- <div class="section" id="data-types">
1780
- <h2><a name="data-types">A.4.5   Data Types</a></h2>
1781
- <p>The Preprocessor library also provides <strong>data types</strong>,
1782
- which you can think of as being analogous to the MPL's type
1783
- sequences. Preprocessor data types store <em>macro arguments</em>
1784
- instead of C++ types.</p>
1785
- <div class="section" id="sequences">
1786
- <h3><a name="sequences">A.4.5.1   Sequences</a></h3>
1787
- <p>A <strong>sequence</strong> (or <strong>seq</strong> for short)
1788
- is any string of nonempty parenthesized <em>macro arguments</em>.
1789
- For instance, here's a three-element sequence:</p>
1790
- <pre class="literal-block">#define MY_SEQ (f(12))(a + 1)(foo)
1791
- </pre>
1792
- <!-- @ignore() -->
1793
- <p>Here's how we might use a sequence to generate specializations of
1794
- the <tt class="docutils literal"><span class="pre">is_integral</span></tt>
1795
- template from the Boost Type Traits library (see Chapter 2):</p>
1796
- <pre class="literal-block">#include &lt;boost/preprocessor/seq.hpp&gt;
1797
-
1798
- template &lt;class T&gt;
1799
- struct is_integral : mpl::false_ {};
1800
-
1801
- // a seq of integral types with unsigned counterparts
1802
- #define BOOST_TT_basic_ints (char)(short)(int)(long)
1803
-
1804
- // generate a seq containing "signed t" and "unsigned t"
1805
- #define BOOST_TT_int_pair(r,data,t) (signed t)(unsigned t)
1806
-
1807
- // a seq of all the integral types
1808
- #define BOOST_TT_ints \
1809
- (bool)(char) \
1810
- BOOST_PP_SEQ_FOR_EACH(BOOST_TT_int_pair, ~, BOOST_TT_basic_ints)
1811
-
1812
- // generate an is_integral specialization for type t
1813
- #define BOOST_TT_is_integral_spec(r,data,t) \
1814
- template &lt;&gt; \
1815
- struct is_integral&lt;t&gt; : mpl::true_ {};
1816
-
1817
- BOOST_PP_SEQ_FOR_EACH(BOOST_TT_is_integral_spec, ~, BOOST_TT_ints)
1818
-
1819
- #undef BOOST_TT_is_integral_spec
1820
- #undef BOOST_TT_ints
1821
- #undef BOOST_TT_int_pair
1822
- #undef BOOST_TT_basic_ints
1823
- </pre>
1824
- <!-- @compile() -->
1825
- <p><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FOR_EACH</span></tt>
1826
- is a higher-order macro, similar to <tt class="docutils literal"><span
1827
-
1828
- class="pre">BOOST_PP_REPEAT</span></tt>, that invokes its
1829
- first argument on each element of its third argument.</p>
1830
- <p>Sequences are the most efficient, most flexible, and
1831
- easiest-to-use of the library's data structures, provided that you
1832
- never need to make an empty one: An empty sequence would contain
1833
- no tokens, and so couldn't be passed as a macro argument. The
1834
- other data structures covered here all have an empty
1835
- representation.</p>
1836
- <p>The facilities for manipulating sequences are all in the
1837
- library's <tt class="docutils literal"><span class="pre">seq/</span></tt>
1838
- subdirectory. They are summarized in Table A.5, where <tt class="docutils literal"><span
1839
-
1840
- class="pre">t</span></tt> is the sequence <tt class="docutils literal"><span
1841
-
1842
- class="pre">(</span></tt><em>t</em><sub>0</sub><tt class="docutils literal"><span
1843
-
1844
- class="pre">)(</span></tt><em>t</em><sub>1</sub><tt class="docutils literal"><span
1845
-
1846
- class="pre">)...(</span></tt><em>t</em><sub>k</sub><tt class="docutils literal"><span
1847
-
1848
- class="pre">)</span></tt>. Where <em>s</em>, <em>r</em>, and
1849
- <em>d</em> appear, they have a similar purpose to the <tt class="docutils literal"><span
1850
-
1851
- class="pre">z</span></tt> parameters we discussed earlier (and
1852
- suggested you ignore for now).</p>
1853
- <table border="1" class="docutils">
1854
- <caption>Preprocessor Sequence Operations</caption> <colgroup> <col
1855
-
1856
- width="51%" /> <col width="49%" /> </colgroup>
1857
- <thead valign="bottom">
1858
- <tr>
1859
- <th>Expression</th>
1860
- <th>Result</th>
1861
- </tr>
1862
- </thead>
1863
- <tbody valign="top">
1864
- <tr>
1865
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_CAT(t)</span></tt></td>
1866
- <td><em>t</em><sub>0</sub><em>t</em><sub>1</sub>...<em>t</em><sub>k</sub></td>
1867
- </tr>
1868
- <tr>
1869
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_ELEM(n,t)</span></tt></td>
1870
- <td><em>t</em><sub>n</sub></td>
1871
- </tr>
1872
- <tr>
1873
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_ENUM(t)</span></tt></td>
1874
- <td><em>t</em><sub>0</sub>, <em>t</em><sub>1</sub>, ...<em>t</em><sub>k</sub></td>
1875
- </tr>
1876
- <tr>
1877
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FILTER(pred,data,t)</span></tt></td>
1878
- <td><tt class="docutils literal"><span class="pre">t</span></tt>
1879
- without the elements that don't satisfy <tt class="docutils literal"><span
1880
-
1881
- class="pre">pred</span></tt></td>
1882
- </tr>
1883
- <tr>
1884
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FIRST_N(n,t)</span></tt></td>
1885
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
1886
-
1887
- class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>1</sub><tt
1888
-
1889
- class="docutils literal"><span class="pre">)</span></tt>...<tt
1890
-
1891
- class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>n-1</sub><tt
1892
-
1893
- class="docutils literal"><span class="pre">)</span></tt></td>
1894
- </tr>
1895
- <tr>
1896
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FOLD_LEFT(op,</span>
1897
- <span class="pre">x,</span> <span class="pre">t)</span></tt></td>
1898
- <td>...<tt class="docutils literal"><span class="pre">op(</span></tt><em>s</em><tt
1899
-
1900
- class="docutils literal"><span class="pre">,op(</span></tt><em>s</em><tt
1901
-
1902
- class="docutils literal"><span class="pre">,op(</span></tt><em>s</em><tt
1903
-
1904
- class="docutils literal"><span class="pre">,x</span></tt>,<em>t</em><sub>0</sub><tt
1905
-
1906
- class="docutils literal"><span class="pre">),</span></tt><em>t</em><sub>1</sub><tt
1907
-
1908
- class="docutils literal"><span class="pre">),</span></tt><em>t</em><sub>2</sub><tt
1909
-
1910
- class="docutils literal"><span class="pre">)</span></tt>...</td>
1911
- </tr>
1912
- <tr>
1913
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FOLD_RIGHT(op,</span>
1914
- <span class="pre">x,</span> <span class="pre">t)</span></tt></td>
1915
- <td>...<tt class="docutils literal"><span class="pre">op(</span></tt><em>s</em><tt
1916
-
1917
- class="docutils literal"><span class="pre">,op(</span></tt><em>s</em><tt
1918
-
1919
- class="docutils literal"><span class="pre">,op(</span></tt><em>s</em><tt
1920
-
1921
- class="docutils literal"><span class="pre">,x</span></tt>,<em>t</em><sub>k</sub><tt
1922
-
1923
- class="docutils literal"><span class="pre">),</span></tt><em>t</em><sub>k-1</sub><tt
1924
-
1925
- class="docutils literal"><span class="pre">),</span></tt>
1926
- <em>t</em><sub>k-2</sub><tt class="docutils literal"><span class="pre">)</span></tt>...</td>
1927
- </tr>
1928
- <tr>
1929
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FOR_EACH(f,</span>
1930
- <span class="pre">x,</span> <span class="pre">t)</span></tt></td>
1931
- <td><tt class="docutils literal"><span class="pre">f(</span></tt><em>r</em><tt
1932
-
1933
- class="docutils literal"><span class="pre">,</span> <span
1934
-
1935
- class="pre">x,</span></tt><em>t</em><sub>0</sub><tt class="docutils literal"><span
1936
-
1937
- class="pre">)</span> <span class="pre">f(</span></tt><em>r</em><tt
1938
-
1939
- class="docutils literal"><span class="pre">,</span> <span
1940
-
1941
- class="pre">x,</span></tt><em>t</em><sub>1</sub><tt class="docutils literal"><span
1942
-
1943
- class="pre">)</span></tt>...<tt class="docutils literal"><span
1944
-
1945
- class="pre">f(</span></tt><em>r</em><tt class="docutils literal"><span
1946
-
1947
- class="pre">,</span> <span class="pre">x,</span></tt><em>t</em><sub>k</sub><tt
1948
-
1949
- class="docutils literal"><span class="pre">)</span></tt></td>
1950
- </tr>
1951
- <tr>
1952
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FOR_EACH_I(g,</span>
1953
- <span class="pre">x,</span> <span class="pre">t)</span></tt></td>
1954
- <td><tt class="docutils literal"><span class="pre">g(</span></tt><em>r</em><tt
1955
-
1956
- class="docutils literal"><span class="pre">,</span> <span
1957
-
1958
- class="pre">x,</span> <span class="pre">0,</span></tt>
1959
- <em>t</em><sub>0</sub><tt class="docutils literal"><span class="pre">)</span>
1960
- <span class="pre">g(</span></tt><em>r</em><tt class="docutils literal"><span
1961
-
1962
- class="pre">,</span> <span class="pre">x,</span> <span
1963
-
1964
- class="pre">1,</span></tt> <em>t</em><sub>1</sub><tt class="docutils literal"><span
1965
-
1966
- class="pre">)</span></tt>... <tt class="docutils literal"><span
1967
-
1968
- class="pre">g(</span></tt><em>r</em><tt class="docutils literal"><span
1969
-
1970
- class="pre">,</span> <span class="pre">x,</span> <span
1971
-
1972
- class="pre">k,</span></tt> <em>t</em><sub>k</sub><tt class="docutils literal"><span
1973
-
1974
- class="pre">)</span></tt></td>
1975
- </tr>
1976
- <tr>
1977
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FOR_EACH_PRODUCT(h,</span>
1978
- <span class="pre">x,</span> <span class="pre">t)</span></tt></td>
1979
- <td>
1980
- <dl class="first last docutils">
1981
- <dt>Cartesian product—</dt>
1982
- <dd>see online docs</dd>
1983
- </dl>
1984
- </td>
1985
- </tr>
1986
- <tr>
1987
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_INSERT(t,i,tokens)</span></tt></td>
1988
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
1989
-
1990
- class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>1</sub><tt
1991
-
1992
- class="docutils literal"><span class="pre">)</span></tt>...<tt
1993
-
1994
- class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>i-1</sub><tt
1995
-
1996
- class="docutils literal"><span class="pre">)(tokens)</span>
1997
- <span class="pre">(</span></tt><em>t</em><sub>i</sub><tt class="docutils literal"><span
1998
-
1999
- class="pre">)(</span></tt><em>t</em><sub>i+1</sub><tt class="docutils literal"><span
2000
-
2001
- class="pre">)</span></tt>...<tt class="docutils literal"><span
2002
-
2003
- class="pre">(</span></tt><em>t</em><sub>k</sub><tt class="docutils literal"><span
2004
-
2005
- class="pre">)</span></tt></td>
2006
- </tr>
2007
- <tr>
2008
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_POP_BACK(t)</span></tt></td>
2009
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
2010
-
2011
- class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>1</sub><tt
2012
-
2013
- class="docutils literal"><span class="pre">)</span></tt>...<tt
2014
-
2015
- class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k-1</sub><tt
2016
-
2017
- class="docutils literal"><span class="pre">)</span></tt></td>
2018
- </tr>
2019
- <tr>
2020
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_POP_FRONT(t)</span></tt></td>
2021
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>1</sub><tt
2022
-
2023
- class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>2</sub><tt
2024
-
2025
- class="docutils literal"><span class="pre">)</span></tt>...<tt
2026
-
2027
- class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
2028
-
2029
- class="docutils literal"><span class="pre">)</span></tt></td>
2030
- </tr>
2031
- <tr>
2032
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_PUSH_BACK(t,tokens)</span></tt></td>
2033
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
2034
-
2035
- class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>1</sub><tt
2036
-
2037
- class="docutils literal"><span class="pre">)</span></tt>...<tt
2038
-
2039
- class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
2040
-
2041
- class="docutils literal"><span class="pre">)(tokens)</span></tt></td>
2042
- </tr>
2043
- <tr>
2044
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_PUSH_FRONT(t,tokens)</span></tt></td>
2045
- <td><tt class="docutils literal"><span class="pre">(tokens)(</span></tt><em>t</em><sub>0</sub><tt
2046
-
2047
- class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>1</sub><tt
2048
-
2049
- class="docutils literal"><span class="pre">)</span></tt>...<tt
2050
-
2051
- class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
2052
-
2053
- class="docutils literal"><span class="pre">)</span></tt></td>
2054
- </tr>
2055
- <tr>
2056
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_REMOVE(t,i)</span></tt></td>
2057
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
2058
-
2059
- class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>1</sub><tt
2060
-
2061
- class="docutils literal"><span class="pre">)</span></tt>...<tt
2062
-
2063
- class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>i-1</sub><tt
2064
-
2065
- class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>i+1</sub><tt
2066
-
2067
- class="docutils literal"><span class="pre">)</span></tt>...<tt
2068
-
2069
- class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
2070
-
2071
- class="docutils literal"><span class="pre">)</span></tt></td>
2072
- </tr>
2073
- <tr>
2074
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_REPLACE(t,i,tokens)</span></tt></td>
2075
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
2076
-
2077
- class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>1</sub><tt
2078
-
2079
- class="docutils literal"><span class="pre">)</span></tt>...<tt
2080
-
2081
- class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>i-1</sub><tt
2082
-
2083
- class="docutils literal"><span class="pre">)(tokens)(</span></tt><em>t</em><sub>i+1</sub><tt
2084
-
2085
- class="docutils literal"><span class="pre">)</span></tt>...<tt
2086
-
2087
- class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
2088
-
2089
- class="docutils literal"><span class="pre">)</span></tt></td>
2090
- </tr>
2091
- <tr>
2092
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_REST_N(n,t)</span></tt></td>
2093
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>n</sub><tt
2094
-
2095
- class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>n+1</sub><tt
2096
-
2097
- class="docutils literal"><span class="pre">)</span></tt>...<tt
2098
-
2099
- class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
2100
-
2101
- class="docutils literal"><span class="pre">)</span></tt></td>
2102
- </tr>
2103
- <tr>
2104
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_REVERSE(t)</span></tt></td>
2105
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
2106
-
2107
- class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>k-1</sub><tt
2108
-
2109
- class="docutils literal"><span class="pre">)</span></tt>...<tt
2110
-
2111
- class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
2112
-
2113
- class="docutils literal"><span class="pre">)</span></tt></td>
2114
- </tr>
2115
- <tr>
2116
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_HEAD(t)</span></tt></td>
2117
- <td><em>t</em><sub>0</sub></td>
2118
- </tr>
2119
- <tr>
2120
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_TAIL(t)</span></tt></td>
2121
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>1</sub><tt
2122
-
2123
- class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>2</sub><tt
2124
-
2125
- class="docutils literal"><span class="pre">)</span></tt>...<tt
2126
-
2127
- class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
2128
-
2129
- class="docutils literal"><span class="pre">)</span></tt></td>
2130
- </tr>
2131
- <tr>
2132
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_SIZE(t)</span></tt></td>
2133
- <td><em>k+1</em></td>
2134
- </tr>
2135
- <tr>
2136
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_SUBSEQ(t,i,m)</span></tt></td>
2137
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>i</sub><tt
2138
-
2139
- class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>i+1</sub><tt
2140
-
2141
- class="docutils literal"><span class="pre">)</span></tt>...<tt
2142
-
2143
- class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>i+m-1</sub><tt
2144
-
2145
- class="docutils literal"><span class="pre">)</span></tt></td>
2146
- </tr>
2147
- <tr>
2148
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_TO_ARRAY(t)</span></tt></td>
2149
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k+1</em>
2150
- <tt class="docutils literal"><span class="pre">,(</span></tt><em>t</em><sub>0</sub><tt
2151
-
2152
- class="docutils literal"><span class="pre">,</span></tt><em>t</em><sub>1</sub><tt
2153
-
2154
- class="docutils literal"><span class="pre">,</span></tt>...<em>t</em><sub>k</sub><tt
2155
-
2156
- class="docutils literal"><span class="pre">))</span></tt></td>
2157
- </tr>
2158
- <tr>
2159
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_TO_TUPLE(t)</span></tt></td>
2160
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
2161
-
2162
- class="docutils literal"><span class="pre">,</span></tt> <em>t</em><sub>1</sub><tt
2163
-
2164
- class="docutils literal"><span class="pre">,</span></tt>...<em>t</em><sub>k</sub><tt
2165
-
2166
- class="docutils literal"><span class="pre">)</span></tt></td>
2167
- </tr>
2168
- <tr>
2169
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_TRANSFORM(f,</span>
2170
- <span class="pre">x,</span> <span class="pre">t)</span></tt></td>
2171
- <td><tt class="docutils literal"><span class="pre">(f(</span></tt><em>r</em><tt
2172
-
2173
- class="docutils literal"><span class="pre">,x,</span></tt><em>t</em><sub>0</sub><tt
2174
-
2175
- class="docutils literal"><span class="pre">))</span> <span
2176
-
2177
- class="pre">(f(</span></tt><em>r</em><tt class="docutils literal"><span
2178
-
2179
- class="pre">,x,</span></tt><em>t</em><sub>1</sub><tt class="docutils literal"><span
2180
-
2181
- class="pre">))</span></tt>...<tt class="docutils literal"><span
2182
-
2183
- class="pre">(f(</span></tt><em>r</em><tt class="docutils literal"><span
2184
-
2185
- class="pre">,x,</span></tt><em>t</em><sub>k</sub><tt class="docutils literal"><span
2186
-
2187
- class="pre">))</span></tt></td>
2188
- </tr>
2189
- </tbody>
2190
- </table>
2191
- <p>It's worth noting that while there is no upper limit on the
2192
- length of a sequence, operations such as <tt class="docutils literal"><span
2193
-
2194
- class="pre">BOOST_PP_SEQ_ELEM</span></tt> that take numeric
2195
- arguments will only work with values up to 256.</p>
2196
- </div>
2197
- <div class="section" id="tuples">
2198
- <h3><a name="tuples">A.4.5.2   Tuples</a></h3>
2199
- <p>A <strong>tuple</strong> is a very simple data structure for
2200
- which the library provides random access and a few other basic
2201
- operations. A tuple takes the form of a parenthesized,
2202
- comma-separated list of <em>macro arguments</em>. For example,
2203
- this is a three-element tuple:</p>
2204
- <pre class="literal-block">#define TUPLE3 (f(12), a + 1, foo)
2205
- </pre>
2206
- <p>The operations in the library's <tt class="docutils literal"><span
2207
-
2208
- class="pre">tuple/</span></tt> subdirectory can handle tuples
2209
- of up to 25 elements. For example, a tuple's <tt class="docutils literal"><span
2210
-
2211
- class="pre">N</span></tt>th element can be accessed via <tt class="docutils literal"><span
2212
-
2213
- class="pre">BOOST_PP_TUPLE_ELEM</span></tt>, as follows:</p>
2214
- <pre class="literal-block"> // length index tuple
2215
- BOOST_PP_TUPLE_ELEM( 3 , 1 , TUPLE3) // a + 1
2216
- </pre>
2217
- <!-- @def gen_id(id = 'a', hdr = 'tuple'):
2218
- example.wrap(''' #include <boost/preprocessor/%s.hpp> int const %s = 0; int const x =''' % (hdr,id), ';')
2219
- compile('all', pop = 1)gen_id() -->
2220
- <p>Notice that we had to pass the tuple's length as the second
2221
- argument to <tt class="docutils literal"><span class="pre">BOOST_PP_TUPLE_ELEM</span></tt>;
2222
- in fact, <em>all</em> tuple operations require explicit
2223
- specification of the tuple's length. We're not going to summarize
2224
- the other four operations in the "tuple" group here—you can
2225
- consult the Preprocessor library's electronic documentation for
2226
- more details. We note, however, that sequences can be transformed
2227
- into tuples with <tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_TO_TUPLE</span></tt>,
2228
- and nonempty tuples can be transformed back into sequences with <tt
2229
-
2230
- class="docutils literal"><span class="pre">BOOST_PP_TUPLE_TO_SEQ</span></tt>.</p>
2231
- <p>The greatest strength of tuples is that they conveniently take
2232
- the same representation as a macro argument list:</p>
2233
- <pre class="literal-block">#define FIRST_OF_THREE(a1,a2,a3) a1
2234
- #define SECOND_OF_THREE(a1,a2,a3) a2
2235
- #define THIRD_OF_THREE(a1,a2,a3) a3
2236
-
2237
- // uses tuple as an argument list
2238
- # define SELECT(selector, tuple) <strong>selector tuple</strong>
2239
-
2240
- SELECT(THIRD_OF_THREE, TUPLE3) // foo
2241
- </pre>
2242
- <!-- @gen_id('foo') --> </div>
2243
- <div class="section" id="arrays">
2244
- <h3><a name="arrays">A.4.5.3   Arrays</a></h3>
2245
- <p>An <strong>array</strong> is just a tuple containing a
2246
- non-negative integer and a tuple of that length:</p>
2247
- <pre class="literal-block">#define ARRAY3 ( 3, TUPLE3 )
2248
- </pre>
2249
- <p>Because an array carries its length around with it, the library's
2250
- interface for operating on arrays is much more convenient than the
2251
- one used for tuples:</p>
2252
- <pre class="literal-block">BOOST_PP_ARRAY_ELEM(1, ARRAY3) // a + 1
2253
- </pre>
2254
- <!-- @gen_id(hdr = 'array')
2255
- del stack[-2:] -->
2256
- <p>The facilities for manipulating arrays of up to 25 elements are
2257
- all in the library's <tt class="docutils literal"><span class="pre">array/</span></tt>
2258
- subdirectory. They are summarized in Table A.6, where <tt class="docutils literal"><span
2259
-
2260
- class="pre">a</span></tt> is the array <tt class="docutils literal"><span
2261
-
2262
- class="pre">(</span></tt><em>k</em><tt class="docutils literal"><span
2263
-
2264
- class="pre">,</span> <span class="pre">(</span></tt><em>a</em><sub>0</sub><tt
2265
-
2266
- class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>1</sub><tt
2267
-
2268
- class="docutils literal"><span class="pre">,...</span></tt><em>a</em><sub>k-1</sub><tt
2269
-
2270
- class="docutils literal"><span class="pre">))</span></tt>.</p>
2271
- <table border="1" class="docutils">
2272
- <caption>Preprocessor Array Operations</caption> <colgroup> <col
2273
-
2274
- width="52%" /> <col width="48%" /> </colgroup>
2275
- <thead valign="bottom">
2276
- <tr>
2277
- <th>Expression</th>
2278
- <th>Result</th>
2279
- </tr>
2280
- </thead>
2281
- <tbody valign="top">
2282
- <tr>
2283
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_DATA(a)</span></tt></td>
2284
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>a</em><sub>0</sub><tt
2285
-
2286
- class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>1</sub><tt
2287
-
2288
- class="docutils literal"><span class="pre">,</span></tt>...
2289
- <em>a</em><sub>k-1</sub><tt class="docutils literal"><span class="pre">)</span></tt></td>
2290
- </tr>
2291
- <tr>
2292
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_ELEM(i,a)</span></tt></td>
2293
- <td><em>a</em><sub>i</sub></td>
2294
- </tr>
2295
- <tr>
2296
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_INSERT(a,</span>
2297
- <span class="pre">i,</span> <span class="pre">tokens)</span></tt></td>
2298
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k+1</em><tt
2299
-
2300
- class="docutils literal"><span class="pre">,(</span></tt><em>a</em><sub>0</sub><tt
2301
-
2302
- class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>1</sub><tt
2303
-
2304
- class="docutils literal"><span class="pre">,</span></tt>...<em>a</em><sub>i-1</sub><tt
2305
-
2306
- class="docutils literal"><span class="pre">,</span> <span
2307
-
2308
- class="pre">tokens,</span></tt> <em>a</em><sub>i</sub><tt
2309
-
2310
- class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>i+1</sub><tt
2311
-
2312
- class="docutils literal"><span class="pre">,</span></tt>...
2313
- <em>a</em><sub>k-1</sub><tt class="docutils literal"><span class="pre">))</span></tt></td>
2314
- </tr>
2315
- <tr>
2316
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_POP_BACK(a)</span></tt></td>
2317
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k-1</em><tt
2318
-
2319
- class="docutils literal"><span class="pre">,(</span></tt><em>a</em><sub>0</sub><tt
2320
-
2321
- class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>1</sub><tt
2322
-
2323
- class="docutils literal"><span class="pre">,</span></tt>...
2324
- <em>a</em><sub>k-2</sub><tt class="docutils literal"><span class="pre">))</span></tt></td>
2325
- </tr>
2326
- <tr>
2327
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_POP_FRONT(a)</span></tt></td>
2328
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k-1</em><tt
2329
-
2330
- class="docutils literal"><span class="pre">,(</span></tt><em>a</em><sub>1</sub><tt
2331
-
2332
- class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>2</sub><tt
2333
-
2334
- class="docutils literal"><span class="pre">,</span></tt>...
2335
- <em>a</em><sub>k-1</sub><tt class="docutils literal"><span class="pre">))</span></tt></td>
2336
- </tr>
2337
- <tr>
2338
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_PUSH_BACK(a,</span>
2339
- <span class="pre">tokens)</span></tt></td>
2340
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k+1</em><tt
2341
-
2342
- class="docutils literal"><span class="pre">,(</span></tt><em>a</em><sub>0</sub><tt
2343
-
2344
- class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>1</sub><tt
2345
-
2346
- class="docutils literal"><span class="pre">,</span></tt>...
2347
- <em>a</em><sub>k-1</sub><tt class="docutils literal"><span class="pre">,</span>
2348
- <span class="pre">tokens))</span></tt></td>
2349
- </tr>
2350
- <tr>
2351
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_PUSH_FRONT(a,</span>
2352
- <span class="pre">tokens)</span></tt></td>
2353
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k+1</em><tt
2354
-
2355
- class="docutils literal"><span class="pre">,(tokens,</span></tt>
2356
- <em>a</em><sub>1</sub><tt class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>2</sub><tt
2357
-
2358
- class="docutils literal"><span class="pre">,</span></tt>...
2359
- <em>a</em><sub>k-1</sub><tt class="docutils literal"><span class="pre">))</span></tt></td>
2360
- </tr>
2361
- <tr>
2362
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_REMOVE(a,</span>
2363
- <span class="pre">i)</span></tt></td>
2364
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k-1</em><tt
2365
-
2366
- class="docutils literal"><span class="pre">,(</span></tt><em>a</em><sub>0</sub><tt
2367
-
2368
- class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>1</sub><tt
2369
-
2370
- class="docutils literal"><span class="pre">,</span></tt>...
2371
- <em>a</em><sub>i-1</sub><tt class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>i+1</sub><tt
2372
-
2373
- class="docutils literal"><span class="pre">,</span></tt>...
2374
- <em>a</em><sub>k-1</sub><tt class="docutils literal"><span class="pre">))</span></tt></td>
2375
- </tr>
2376
- <tr>
2377
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_REPLACE(a,</span>
2378
- <span class="pre">i,</span> <span class="pre">tokens)</span></tt></td>
2379
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k</em><tt
2380
-
2381
- class="docutils literal"><span class="pre">,(</span></tt><em>a</em><sub>0</sub><tt
2382
-
2383
- class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>1</sub><tt
2384
-
2385
- class="docutils literal"><span class="pre">,</span></tt>...
2386
- <em>a</em><sub>i-1</sub><tt class="docutils literal"><span class="pre">,</span>
2387
- <span class="pre">tokens,</span></tt> <em>a</em><sub>i+1</sub><tt
2388
-
2389
- class="docutils literal"><span class="pre">,</span></tt>...
2390
- <em>a</em><sub>k-1</sub><tt class="docutils literal"><span class="pre">))</span></tt></td>
2391
- </tr>
2392
- <tr>
2393
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_REVERSE(a)</span></tt></td>
2394
- <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k</em><tt
2395
-
2396
- class="docutils literal"><span class="pre">,(</span></tt><em>a</em><sub>k-1</sub><tt
2397
-
2398
- class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>k-2</sub><tt
2399
-
2400
- class="docutils literal"><span class="pre">,</span></tt>...
2401
- <em>a</em><sub>1</sub><tt class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>0</sub><tt
2402
-
2403
- class="docutils literal"><span class="pre">))</span></tt></td>
2404
- </tr>
2405
- <tr>
2406
- <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_SIZE(a)</span></tt></td>
2407
- <td><em>k</em></td>
2408
- </tr>
2409
- </tbody>
2410
- </table>
2411
- </div>
2412
- <div class="section" id="lists">
2413
- <h3><a name="lists">A.4.5.4   Lists</a></h3>
2414
- <p>A <strong>list</strong> is a two-element tuple whose first
2415
- element is the first element of the list, and whose second element
2416
- is a list of the remaining elements, or <tt class="docutils literal"><span
2417
-
2418
- class="pre">BOOST_PP_NIL</span></tt> if there are no remaining
2419
- elements. Lists have access characteristics similar to those of a
2420
- runtime linked list. Here is a three-element list:</p>
2421
- <pre class="literal-block">#define LIST3 (<strong>f(12)</strong>, (<strong>a + 1</strong>, (<strong>foo</strong>, BOOST_PP_NIL)))
2422
- </pre>
2423
- <!-- @ignore() -->
2424
- <p>The facilities for manipulating lists are all in the library's <tt
2425
-
2426
- class="docutils literal"><span class="pre">list/</span></tt>
2427
- subdirectory. Because the operations are a subset of those
2428
- provided for sequences, we're not going to summarize them here—it
2429
- should be easy to understand the list operations by reading the
2430
- documentation on the basis of our coverage of sequences.</p>
2431
- <p>Like sequences, lists have no fixed upper length bound. Unlike
2432
- sequences, lists can also be empty. It's rare to need more than 25
2433
- elements in a preprocessor data structure, and lists tend to be
2434
- slower to manipulate and harder to read than any of the other
2435
- structures, so they should normally be used only as a last resort.</p>
2436
- </div>
2437
- </div>
2438
- </div>
2439
- <div class="section" id="exercise">
2440
- <h1><a name="exercise">A.5   Exercise</a></h1>
2441
- <dl class="docutils">
2442
- <dt>A-0</dt>
2443
- <dd>Fully preprocessor-ize the <tt class="docutils literal"><span class="pre">tiny</span></tt>
2444
- type sequence implemented in Chapter 5 so that all boilerplate code
2445
- is eliminated and the maximum size of a <tt class="docutils literal"><span
2446
-
2447
- class="pre">tiny</span></tt> sequence can be adjusted by
2448
- changing <tt class="docutils literal"><span class="pre">TINY_MAX_SIZE</span></tt>.</dd>
2449
- </dl>
2450
- <!-- on hold:
2451
- It isn't uncommon to need token-wise arithmetic operations forpurposes other than invoking Preprocessor Library repetitionmacros. For example, let's write a metafunction to generate
2452
- function types from "signature" type sequences that specify thefunction's return and parameter types:: template <unsigned Size, class Signature>
2453
- struct to_function_impl; template <class Signature> struct to_function
2454
- : to_function_impl<mpl::size<Signature>::type, Signature> {};The challenge now is to implement ``to_function_impl``. For
2455
- ``Size == 3``, an appropriate specialization might look like this:: template <class Signature> struct to_function_impl<3,Signature>
2456
- { typedef mpl::begin<Signature>::type i0; typedef mpl::deref<i0>::type t0;
2457
- typedef mpl::next<i0>::type i1; typedef mpl::deref<i1>::type t1; typedef mpl::next<i1>::type i2;
2458
- typedef mpl::deref<i2>::type t2; typedef t0 type(t1,t2); };
2459
- A local macro to generate a single ``to_function_impl``specialization would look something like this:
2460
- .. parsed-literal:: #define to_function_impl_spec(size) \\ template <class Signature> \\
2461
- struct to_function_impl<3,Signature> \\ { \\ typedef mpl::begin<Signature>::type i0; \\ typedef mpl::deref<i0>::type t0; \\
2462
- \\ BOOST_PP_REPEAT_FROM_TO(1, size, to_function_t, ~) \\ \\ typedef t0 type(BOOST_PP_ENUM_SHIFTED_PARAMS(size,t)); \\
2463
- }; #define to_function_t(z, n, unused) \\ typedef mpl::next<BOOST_PP_CAT(i,\ **BOOST_PP_DEC(n)**)>::type \\
2464
- BOOST_PP_CAT(i,n); \\ \\ typedef mpl::deref<BOOST_PP_CAT(i,n)>::type BOOST_PP_CAT(t,n);
2465
- We've used some new library macros above; here is a brief rundown:* ``BOOST_PP_REPEAT_FROM_TO`` is just like ``BOOST_PP_REPEAT``, except that it accepts an initial repetition index. Since every
2466
- function has a return type, we don't need to worry about the case where ``Size == 0``.* ``BOOST_PP_ENUM_SHIFTED_PARAMS`` is just like
2467
- ``BOOST_PP_ENUM_PARAMS``, except that repetition indices start at ``1`` instead of ``0``.* ``BOOST_PP_CAT`` implements token pasting; its two arguments are
2468
- "glued" together into a single token. Since this is a general-purpose macro, it sits in ``cat.hpp`` at the top level of the library's directory tree. [#paste]_
2469
- .. [#paste] The preprocessor's built-in token-pasting operator, ``##``, often yields surprising results by taking effect before its arguments have been expanded. By contrast, ``BOOST_PP_CAT`` delays concatenation until after its arguments have been fully
2470
- evaluated.* Finally, though it only performs trivial arithmetic, ``BOOST_PP_DEC`` plays a crucial role in generating an
2471
- appropriate prior iterator identifier for our own code in ``to_function_t``.If we didn't have ``BOOST_PP_REPEAT_FROM_TO`` at our disposal in
2472
- the previous example, we might've had to use ``BOOST_PP_REPEAT``,which always starts iterating at ``0``. Consequently``to_function_t`` would've been responsible for producing thedeclarations of ``i0`` and ``t0`` as well as those of the other
2473
- nested types. To manage that, it would need a way to selectdifferent expansions depending on the value of ``n``.In its ``control/`` directory, the Preprocessor Library supplies a
2474
- macro ``BOOST_PP_IF(c,t,f)`` that fulfills a similar role to theone filled by ``mpl::if_``. Rewriting the example accordingly, weget:
2475
- .. parsed-literal:: #define to_function_impl_spec(size) \\ template <class Signature> \\
2476
- struct to_function_impl<3,Signature> \\ { \\ BOOST_PP_REPEAT_FROM_TO(1, size, to_function_t, ~) \\ \\
2477
- typedef t0 type(BOOST_PP_ENUM_SHIFTED_PARAMS(size,t)); \\ }; #define to_function_t(z, n, unused) \\
2478
- typedef BOOST_PP_IF( \\ n, \\ mpl::next<BOOST_PP_CAT(i,BOOST_PP_DEC(n))>::type, \\ typedef mpl::begin<Signature>::type i0; \\
2479
- ) \\ BOOST_PP_CAT(i,n); \\ \\ typedef mpl::deref<BOOST_PP_CAT(i,n)>::type BOOST_PP_CAT(t,n);
2480
- Although the formulation above will work, it does unnecessary workwhen ``n == 0``, evaluating the "true" branch of the conditionalonly to discard it. -->
2481
- </div>
2482
- </div>
2483
- <hr class="docutils footer" />
2484
- <div class="footer"> Generated on: 2005-10-17 19:34 UTC. Generated by <a class="reference"
2485
-
2486
- href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference"
2487
-
2488
- href="http://docutils.sourceforge.net/rst.html">reStructuredText</a>
2489
- source. </div>
2490
- </body>
2491
- </html>
2492
- <!--
2493
- FILE ARCHIVED ON 19:59:10 Mar 30, 2013 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 21:06:19 May 19, 2015. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
2494
- ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)).-->