script_core 0.2.1 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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)).-->