passenger 6.0.1 → 6.0.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 (453) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +145 -18
  3. data/CONTRIBUTORS +6 -0
  4. data/bin/passenger-install-nginx-module +1 -1
  5. data/bin/passenger-status +15 -0
  6. data/build/misc.rb +3 -1
  7. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +56 -3
  8. data/dev/copy_boost_headers +1 -0
  9. data/package.json +1 -1
  10. data/passenger.gemspec +9 -1
  11. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.css +0 -0
  12. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.js +0 -0
  13. data/resources/templates/error_renderer/with_details/src/bootstrap/config.json +0 -0
  14. data/resources/templates/standalone/http.erb +2 -0
  15. data/resources/templates/standalone/server.erb +1 -0
  16. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
  17. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -0
  18. data/src/agent/Core/ApplicationPool/Options.h +10 -0
  19. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
  20. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
  21. data/src/agent/Core/Config.h +14 -1
  22. data/src/agent/Core/Controller.h +1 -0
  23. data/src/agent/Core/Controller/Config.h +5 -1
  24. data/src/agent/Core/Controller/ForwardResponse.cpp +13 -0
  25. data/src/agent/Core/Controller/InitRequest.cpp +3 -0
  26. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -0
  27. data/src/agent/Core/CoreMain.cpp +2 -1
  28. data/src/agent/Core/OptionParser.h +3 -0
  29. data/src/agent/Core/SpawningKit/Context.h +1 -0
  30. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -1
  31. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
  32. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +2 -0
  33. data/src/agent/Watchdog/Config.h +15 -1
  34. data/src/agent/Watchdog/WatchdogMain.cpp +7 -0
  35. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +10 -0
  36. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +10 -0
  37. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +30 -0
  38. data/src/apache2_module/Hooks.cpp +6 -0
  39. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +20 -0
  40. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +24 -0
  41. data/src/cxx_supportlib/Constants.h +2 -1
  42. data/src/cxx_supportlib/LoggingKit/Config.h +2 -0
  43. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +15 -9
  44. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
  45. data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +20 -19
  46. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +11 -7
  47. data/src/cxx_supportlib/oxt/system_calls.cpp +10 -10
  48. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/finder.hpp +0 -4
  49. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +46 -37
  50. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +16 -15
  51. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +45 -26
  52. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +33 -0
  53. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +1 -1
  54. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +38 -14
  55. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +2 -0
  56. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +1 -1
  57. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +3 -1
  58. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -1
  59. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +6 -1
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -4
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +4 -4
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +3 -3
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +4 -4
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +4 -4
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +8 -6
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +17 -0
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +50 -5
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +2 -1
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +1 -1
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +3 -2
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +4 -3
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +5 -3
  74. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +13 -12
  75. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +10 -10
  76. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +34 -34
  77. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +4 -4
  78. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +8 -8
  79. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +27 -27
  80. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +4 -4
  81. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +5 -4
  82. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1 -1
  83. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +3 -3
  84. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/allocators.hpp +89 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +83 -74
  86. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +21 -33
  87. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +5 -5
  88. data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +1 -1
  89. data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +3 -3
  90. data/src/cxx_supportlib/vendor-modified/boost/concept/detail/has_constraints.hpp +3 -3
  91. data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +1 -1
  92. data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +19 -19
  93. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +5 -2
  95. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +5 -1
  96. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +6 -2
  97. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/comeau.hpp +1 -1
  98. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +4 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +368 -52
  100. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -1
  101. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +6 -3
  102. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -0
  103. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/greenhills.hpp +1 -1
  104. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +1 -1
  105. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +6 -1
  106. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
  107. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -1
  108. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -1
  109. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -3
  110. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +3 -0
  111. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +3 -0
  112. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -1
  113. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +9 -4
  114. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
  115. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -0
  116. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_compiler_config.hpp +1 -2
  117. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +13 -0
  118. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +2 -2
  119. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +14 -4
  120. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -4
  121. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +262 -2
  122. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +4 -3
  123. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +1 -1
  124. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +7 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +22 -19
  126. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +833 -459
  127. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +24 -6
  128. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +2 -1
  129. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +61 -5
  130. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +33 -8
  131. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +132 -41
  132. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +16 -0
  133. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +54 -0
  134. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +58 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +28 -23
  136. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +167 -115
  137. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +55 -0
  138. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
  139. data/src/cxx_supportlib/vendor-modified/boost/container/detail/thread_mutex.hpp +181 -0
  140. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +167 -29
  141. data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -0
  142. data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +1 -1
  143. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +18 -0
  144. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +389 -3
  145. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +262 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +52 -8
  147. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +364 -0
  148. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +4 -2
  149. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
  150. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -2
  151. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +286 -6
  152. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +56 -8
  153. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +43 -6
  154. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +100 -31
  155. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +2 -1
  156. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +126 -69
  157. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +75 -51
  158. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +136 -0
  159. data/src/cxx_supportlib/vendor-modified/boost/core/exchange.hpp +49 -0
  160. data/src/cxx_supportlib/vendor-modified/boost/core/explicit_operator_bool.hpp +9 -0
  161. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +101 -130
  162. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +2 -2
  163. data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +16 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +59 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -1
  166. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +9 -2
  167. data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +26 -10
  168. data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +5 -0
  169. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +3 -3
  170. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +1 -1
  171. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +1 -1
  172. data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +38 -47
  173. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +5 -5
  174. data/src/cxx_supportlib/vendor-modified/boost/detail/reference_content.hpp +7 -7
  175. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +62 -58
  176. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +1 -1
  177. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +29 -29
  178. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +38 -40
  179. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +4 -4
  180. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +44 -44
  181. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +39 -39
  182. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +15 -15
  183. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +7 -7
  184. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +14 -14
  186. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +9 -9
  187. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
  188. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +1 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +2 -2
  190. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +2 -2
  191. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +6 -6
  192. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +1 -1
  194. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +1 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +1 -1
  196. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +3 -3
  197. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +33 -14
  198. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +12 -12
  199. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +4 -4
  200. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +3 -0
  201. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +39 -39
  202. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +61 -61
  203. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +4 -4
  204. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +66 -66
  205. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +54 -54
  206. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +6 -2
  207. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +3 -3
  208. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +1 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +65 -0
  210. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
  211. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
  212. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +23 -23
  213. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +4 -4
  214. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +13 -13
  215. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
  216. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +5 -4
  217. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  218. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +5 -5
  219. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +5 -2
  220. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +18 -13
  221. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +4 -4
  222. data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +16 -5
  223. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/future.cpp +1 -1
  224. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +14 -8
  225. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/tss_null.cpp +2 -2
  226. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +13 -13
  227. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +27 -0
  228. data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +29 -6
  230. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +12 -3
  231. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +1 -1
  232. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +1 -1
  233. data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +8 -8
  235. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -0
  236. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +3 -3
  237. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +23 -3
  238. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +9 -3
  239. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -11
  240. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +20 -1
  241. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +3 -3
  242. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +211 -101
  243. data/src/cxx_supportlib/vendor-modified/boost/parameter/python.hpp +5 -6
  244. data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +119 -25
  245. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
  246. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +5 -0
  247. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +44 -0
  248. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler.h +1 -0
  249. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +1 -1
  250. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/nvcc.h +73 -0
  251. data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +3 -1
  252. data/src/cxx_supportlib/vendor-modified/boost/predef/language.h +1 -0
  253. data/src/cxx_supportlib/vendor-modified/boost/predef/language/cuda.h +52 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +6 -1
  256. data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +1 -2
  257. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  258. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +17 -8
  259. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/stringize.hpp +4 -0
  260. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/wstringize.hpp +4 -0
  261. data/src/cxx_supportlib/vendor-modified/boost/random/detail/gray_coded_qrng.hpp +166 -0
  262. data/src/cxx_supportlib/vendor-modified/boost/random/detail/niederreiter_base2_table.hpp +513 -0
  263. data/src/cxx_supportlib/vendor-modified/boost/random/detail/qrng_base.hpp +291 -0
  264. data/src/cxx_supportlib/vendor-modified/boost/random/detail/sobol_table.hpp +4106 -0
  265. data/src/cxx_supportlib/vendor-modified/boost/random/faure.hpp +367 -0
  266. data/src/cxx_supportlib/vendor-modified/boost/random/niederreiter_base2.hpp +360 -0
  267. data/src/cxx_supportlib/vendor-modified/boost/random/sobol.hpp +237 -0
  268. data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +43 -0
  269. data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +13 -5
  270. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +1 -1
  271. data/src/cxx_supportlib/vendor-modified/boost/range/detail/common.hpp +1 -3
  272. data/src/cxx_supportlib/vendor-modified/boost/range/detail/implementation_help.hpp +2 -2
  273. data/src/cxx_supportlib/vendor-modified/boost/range/distance.hpp +11 -5
  274. data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +14 -6
  275. data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +3 -3
  276. data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +6 -2
  277. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +55 -37
  278. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +3 -2
  279. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +11 -1
  280. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +7 -1
  281. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +3 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +5 -2
  283. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +0 -3
  284. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +15 -4
  285. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +1 -2
  286. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +12 -3
  287. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
  288. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +7 -3
  289. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +6 -2
  290. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -5
  291. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -8
  292. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +3 -3
  293. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +3 -1
  294. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -8
  295. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +12 -11
  296. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -4
  297. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +1 -9
  298. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +2 -10
  299. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -0
  300. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +60 -115
  301. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +3 -3
  302. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +2 -1
  303. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +2 -1
  304. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +2 -1
  305. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +2 -1
  306. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +2 -1
  307. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +2 -1
  308. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +2 -1
  309. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +2 -1
  310. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +2 -1
  311. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +2 -1
  312. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +2 -1
  313. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +2 -1
  314. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +2 -1
  315. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +2 -1
  316. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +2 -1
  317. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +2 -1
  318. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +2 -1
  319. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +2 -1
  320. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +3 -3
  321. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +14 -8
  322. data/src/cxx_supportlib/vendor-modified/boost/system/config.hpp +4 -24
  323. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +57 -0
  324. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +101 -0
  325. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_interoperability.hpp +141 -0
  326. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_posix.hpp +132 -0
  327. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +775 -588
  328. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
  329. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +6 -0
  330. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +13 -6
  331. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/nullary_function.hpp +8 -3
  332. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +3 -1
  333. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_safety.hpp +160 -0
  334. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/tss_hooks.hpp +2 -2
  335. data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +3 -3
  336. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +24 -1
  337. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +10 -1
  338. data/src/cxx_supportlib/vendor-modified/boost/thread/lock_guard.hpp +4 -4
  339. data/src/cxx_supportlib/vendor-modified/boost/thread/lockable_traits.hpp +31 -0
  340. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +2 -2
  341. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +2 -2
  342. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +8 -53
  343. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +73 -4
  344. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +6 -6
  345. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +14 -9
  346. data/src/cxx_supportlib/vendor-modified/boost/thread/xtime.hpp +6 -6
  347. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +9 -8
  348. data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +1 -0
  349. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +21 -19
  350. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +3 -1
  351. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +9 -0
  352. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +1 -1
  353. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +55 -0
  354. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +72 -0
  355. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_03.hpp +108 -0
  356. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +501 -0
  357. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_msvc10_fix.hpp +30 -0
  358. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +2 -2
  359. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp +117 -0
  360. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +557 -0
  361. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp +43 -0
  362. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +1 -1
  363. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +1 -1
  364. data/src/cxx_supportlib/vendor-modified/boost/type_traits/enable_if.hpp +37 -0
  365. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_dereference.hpp +344 -0
  366. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +5 -0
  367. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +5 -0
  368. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +5 -0
  369. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_decrement.hpp +21 -0
  370. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_increment.hpp +21 -0
  371. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_decrement.hpp +21 -0
  372. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_increment.hpp +22 -0
  373. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -1
  374. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +2 -1
  375. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +5 -15
  376. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +16 -6
  377. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +3 -1
  378. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_assignable.hpp +3 -4
  379. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_constructible.hpp +4 -6
  380. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +1 -1
  381. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +1 -1
  382. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +1 -1
  383. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_final.hpp +1 -1
  384. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +4 -79
  385. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +3 -97
  386. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_noncopyable.hpp +39 -0
  387. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +2 -2
  388. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -2
  389. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +4 -0
  390. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +104 -63
  391. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +1 -1
  392. data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +1 -1
  393. data/src/cxx_supportlib/vendor-modified/boost/typeof/constant.hpp +26 -0
  394. data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +4 -4
  395. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -3
  396. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +1 -1
  397. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +4 -5
  398. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +5 -5
  399. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +9 -9
  400. data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +3 -3
  401. data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +2 -2
  402. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +6 -6
  403. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +1 -1
  404. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +4 -4
  405. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +2 -2
  406. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +2 -2
  407. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +16 -16
  408. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +5 -5
  409. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +201 -201
  410. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +301 -301
  411. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +401 -401
  412. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +101 -101
  413. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +3 -0
  414. data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +2 -0
  415. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +26 -6
  416. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  417. data/src/helper-scripts/prespawn +1 -0
  418. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +40 -0
  419. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +26 -0
  420. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +48 -0
  421. data/src/nginx_module/Configuration.c +6 -2
  422. data/src/nginx_module/ContentHandler.c +5 -1
  423. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +15 -0
  424. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +15 -0
  425. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +28 -0
  426. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +6 -0
  427. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +11 -0
  428. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +11 -0
  429. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +23 -0
  430. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +8 -0
  431. data/src/nginx_module/ngx_http_passenger_module.c +2 -0
  432. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +0 -0
  433. data/src/ruby_native_extension/extconf.rb +7 -0
  434. data/src/ruby_supportlib/phusion_passenger.rb +7 -7
  435. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +8 -0
  436. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +23 -0
  437. data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -0
  438. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +1 -3
  439. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +37 -0
  440. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +1 -1
  441. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +10 -0
  442. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +2 -2
  443. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +5 -0
  444. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +11 -0
  445. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +3 -0
  446. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +1 -1
  447. data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +6 -0
  448. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +15 -11
  449. metadata +42 -8
  450. data/src/cxx_supportlib/vendor-modified/boost/call_traits.hpp +0 -20
  451. data/src/cxx_supportlib/vendor-modified/boost/detail/call_traits.hpp +0 -172
  452. data/src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp +0 -17
  453. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +0 -496
@@ -38,6 +38,7 @@
38
38
  #include <algorithm> // for find_if
39
39
  #include <boost/config.hpp>
40
40
  #include <boost/assert.hpp>
41
+ #include <boost/type_traits/is_pointer.hpp>
41
42
  #include <boost/detail/workaround.hpp>
42
43
  #include <boost/mpl/if.hpp>
43
44
  #include <boost/throw_exception.hpp>
@@ -32,21 +32,26 @@
32
32
  #include <boost/static_assert.hpp>
33
33
  #include <boost/throw_exception.hpp>
34
34
  #include <boost/core/demangle.hpp>
35
+ #include <boost/type_traits/conditional.hpp>
35
36
  #include <boost/type_traits/is_const.hpp>
36
37
  #include <boost/type_traits/is_reference.hpp>
37
38
  #include <boost/type_traits/is_volatile.hpp>
38
39
  #include <boost/type_traits/remove_cv.hpp>
39
40
  #include <boost/type_traits/remove_reference.hpp>
40
- #include <boost/mpl/if.hpp>
41
- #include <boost/mpl/or.hpp>
42
41
 
43
- #include <boost/container_hash/hash.hpp>
42
+ #if (defined(_MSC_VER) && _MSC_VER > 1600) \
43
+ || (defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ > 5 && defined(__GXX_EXPERIMENTAL_CXX0X__)) \
44
+ || (defined(__GNUC__) && __GNUC__ > 4 && __cplusplus >= 201103)
45
+ # define BOOST_TYPE_INDEX_STD_TYPE_INDEX_HAS_HASH_CODE
46
+ #else
47
+ # include <boost/container_hash/hash.hpp>
48
+ #endif
44
49
 
45
50
  #if (defined(__EDG_VERSION__) && __EDG_VERSION__ < 245) \
46
51
  || (defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 744)
47
52
  # include <boost/type_traits/is_signed.hpp>
48
53
  # include <boost/type_traits/make_signed.hpp>
49
- # include <boost/mpl/identity.hpp>
54
+ # include <boost/type_traits/type_identity.hpp>
50
55
  #endif
51
56
 
52
57
  #ifdef BOOST_HAS_PRAGMA_ONCE
@@ -176,9 +181,7 @@ inline std::string stl_type_index::pretty_name() const {
176
181
 
177
182
 
178
183
  inline std::size_t stl_type_index::hash_code() const BOOST_NOEXCEPT {
179
- #if (defined(_MSC_VER) && _MSC_VER > 1600) \
180
- || (defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ > 5 && defined(__GXX_EXPERIMENTAL_CXX0X__)) \
181
- || (defined(__GNUC__) && __GNUC__ > 4 && __cplusplus >= 201103)
184
+ #ifdef BOOST_TYPE_INDEX_STD_TYPE_INDEX_HAS_HASH_CODE
182
185
  return data_->hash_code();
183
186
  #else
184
187
  return boost::hash_range(raw_name(), raw_name() + std::strlen(raw_name()));
@@ -195,13 +198,13 @@ inline std::size_t stl_type_index::hash_code() const BOOST_NOEXCEPT {
195
198
  || (defined(__sgi) && defined(__host_mips)) \
196
199
  || (defined(__hpux) && defined(__HP_aCC)) \
197
200
  || (defined(linux) && defined(__INTEL_COMPILER) && defined(__ICC))
198
- # define BOOST_CLASSINFO_COMPARE_BY_NAMES
201
+ # define BOOST_TYPE_INDEX_CLASSINFO_COMPARE_BY_NAMES
199
202
  # endif
200
203
 
201
204
  /// @endcond
202
205
 
203
206
  inline bool stl_type_index::equal(const stl_type_index& rhs) const BOOST_NOEXCEPT {
204
- #ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES
207
+ #ifdef BOOST_TYPE_INDEX_CLASSINFO_COMPARE_BY_NAMES
205
208
  return raw_name() == rhs.raw_name() || !std::strcmp(raw_name(), rhs.raw_name());
206
209
  #else
207
210
  return !!(*data_ == *rhs.data_);
@@ -209,17 +212,14 @@ inline bool stl_type_index::equal(const stl_type_index& rhs) const BOOST_NOEXCEP
209
212
  }
210
213
 
211
214
  inline bool stl_type_index::before(const stl_type_index& rhs) const BOOST_NOEXCEPT {
212
- #ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES
215
+ #ifdef BOOST_TYPE_INDEX_CLASSINFO_COMPARE_BY_NAMES
213
216
  return raw_name() != rhs.raw_name() && std::strcmp(raw_name(), rhs.raw_name()) < 0;
214
217
  #else
215
218
  return !!data_->before(*rhs.data_);
216
219
  #endif
217
220
  }
218
221
 
219
- #ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES
220
- #undef BOOST_CLASSINFO_COMPARE_BY_NAMES
221
- #endif
222
-
222
+ #undef BOOST_TYPE_INDEX_CLASSINFO_COMPARE_BY_NAMES
223
223
 
224
224
 
225
225
  template <class T>
@@ -232,10 +232,10 @@ inline stl_type_index stl_type_index::type_id() BOOST_NOEXCEPT {
232
232
 
233
233
  // Old EDG-based compilers seem to mistakenly distinguish 'integral' from 'signed integral'
234
234
  // in typeid() expressions. Full template specialization for 'integral' fixes that issue:
235
- typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_<
236
- boost::is_signed<no_cvr_prefinal_t>,
235
+ typedef BOOST_DEDUCED_TYPENAME boost::conditional<
236
+ boost::is_signed<no_cvr_prefinal_t>::value,
237
237
  boost::make_signed<no_cvr_prefinal_t>,
238
- boost::mpl::identity<no_cvr_prefinal_t>
238
+ boost::type_identity<no_cvr_prefinal_t>
239
239
  >::type no_cvr_prefinal_lazy_t;
240
240
 
241
241
  typedef BOOST_DEDUCED_TYPENAME no_cvr_prefinal_t::type no_cvr_t;
@@ -252,8 +252,8 @@ namespace detail {
252
252
 
253
253
  template <class T>
254
254
  inline stl_type_index stl_type_index::type_id_with_cvr() BOOST_NOEXCEPT {
255
- typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_<
256
- boost::mpl::or_<boost::is_reference<T>, boost::is_const<T>, boost::is_volatile<T> >,
255
+ typedef BOOST_DEDUCED_TYPENAME boost::conditional<
256
+ boost::is_reference<T>::value || boost::is_const<T>::value || boost::is_volatile<T>::value,
257
257
  detail::cvr_saver<T>,
258
258
  T
259
259
  >::type type;
@@ -273,4 +273,6 @@ inline stl_type_index stl_type_index::type_id_runtime(const T& value) BOOST_NOEX
273
273
 
274
274
  }} // namespace boost::typeindex
275
275
 
276
+ #undef BOOST_TYPE_INDEX_STD_TYPE_INDEX_HAS_HASH_CODE
277
+
276
278
  #endif // BOOST_TYPE_INDEX_STL_TYPE_INDEX_HPP
@@ -206,9 +206,11 @@ private:
206
206
 
207
207
  static bool cond();
208
208
 
209
+ BOOST_STATIC_CONSTANT(int, selector = sizeof(select(cond() ? T() : U())));
210
+
209
211
  public:
210
212
 
211
- typedef typename arithmetic_type< sizeof(select( cond()? T(): U() )) >::type type;
213
+ typedef typename arithmetic_type<selector>::type type;
212
214
  };
213
215
 
214
216
  } // namespace type_traits_detail
@@ -78,6 +78,15 @@
78
78
  #undef BOOST_TT_HAS_ACCURATE_BINARY_OPERATOR_DETECTION
79
79
  #endif
80
80
 
81
+ //
82
+ // Can we implement accurate is_function/is_member_function_pointer (post C++03)?
83
+ //
84
+ #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !BOOST_WORKAROUND(BOOST_GCC, < 40900)\
85
+ && !BOOST_WORKAROUND(BOOST_MSVC, < 1900) && !BOOST_WORKAROUND(__clang_major__, <= 4)
86
+ # define BOOST_TT_HAS_ASCCURATE_IS_FUNCTION
87
+ #endif
88
+
89
+
81
90
  #endif // BOOST_TT_CONFIG_HPP_INCLUDED
82
91
 
83
92
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Copyright 2017-2018 Glen Joseph Fernandes
3
- <glenjofe -at- gmail.com>
3
+ (glenjofe@gmail.com)
4
4
 
5
5
  Distributed under the Boost Software License,
6
6
  Version 1.0. (See accompanying file LICENSE_1_0.txt
@@ -7,6 +7,59 @@
7
7
  // See http://www.boost.org/libs/type_traits for most recent version including documentation.
8
8
 
9
9
  #include <boost/config.hpp>
10
+ #include <boost/type_traits/detail/config.hpp>
11
+
12
+ #if defined(BOOST_TT_HAS_ACCURATE_BINARY_OPERATOR_DETECTION)
13
+
14
+ #include <boost/type_traits/integral_constant.hpp>
15
+ #include <boost/type_traits/make_void.hpp>
16
+ #include <boost/type_traits/is_convertible.hpp>
17
+ #include <boost/type_traits/is_void.hpp>
18
+ #include <boost/type_traits/add_reference.hpp>
19
+ #include <utility>
20
+
21
+ namespace boost
22
+ {
23
+
24
+ namespace binary_op_detail {
25
+
26
+ struct dont_care;
27
+
28
+ template <class T, class Ret, class = boost::void_t<>>
29
+ struct BOOST_JOIN(BOOST_TT_TRAIT_NAME, _ret_imp) : public boost::false_type {};
30
+
31
+ template <class T, class Ret>
32
+ struct BOOST_JOIN(BOOST_TT_TRAIT_NAME, _ret_imp)<T, Ret, boost::void_t<decltype(std::declval<typename add_reference<T>::type>() BOOST_TT_TRAIT_OP) > >
33
+ : public boost::integral_constant<bool, ::boost::is_convertible<decltype(std::declval<typename add_reference<T>::type>() BOOST_TT_TRAIT_OP), Ret>::value> {};
34
+
35
+ template <class T, class = boost::void_t<> >
36
+ struct BOOST_JOIN(BOOST_TT_TRAIT_NAME, _void_imp) : public boost::false_type {};
37
+
38
+ template <class T>
39
+ struct BOOST_JOIN(BOOST_TT_TRAIT_NAME, _void_imp)<T, boost::void_t<decltype(std::declval<typename add_reference<T>::type>()BOOST_TT_TRAIT_OP)> >
40
+ : public boost::integral_constant<bool, ::boost::is_void<decltype(std::declval<typename add_reference<T>::type>() BOOST_TT_TRAIT_OP)>::value> {};
41
+
42
+ template <class T, class = boost::void_t<>>
43
+ struct BOOST_JOIN(BOOST_TT_TRAIT_NAME, _dc_imp) : public boost::false_type {};
44
+
45
+ template <class T>
46
+ struct BOOST_JOIN(BOOST_TT_TRAIT_NAME, _dc_imp)<T, boost::void_t<decltype(std::declval<typename add_reference<T>::type>() BOOST_TT_TRAIT_OP)> >
47
+ : public boost::true_type {};
48
+
49
+ }
50
+
51
+ template <class T, class Ret = boost::binary_op_detail::dont_care>
52
+ struct BOOST_TT_TRAIT_NAME : public boost::binary_op_detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME, _ret_imp) <T, Ret> {};
53
+ template <class T>
54
+ struct BOOST_TT_TRAIT_NAME<T, void> : public boost::binary_op_detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME, _void_imp) <T> {};
55
+ template <class T>
56
+ struct BOOST_TT_TRAIT_NAME<T, boost::binary_op_detail::dont_care> : public boost::binary_op_detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME, _dc_imp) <T> {};
57
+
58
+
59
+ }
60
+
61
+ #else
62
+
10
63
  #include <boost/type_traits/detail/yes_no_type.hpp>
11
64
  #include <boost/type_traits/integral_constant.hpp>
12
65
  #include <boost/type_traits/is_const.hpp>
@@ -193,3 +246,5 @@ struct BOOST_TT_TRAIT_NAME : public integral_constant
193
246
  #if defined(BOOST_MSVC)
194
247
  # pragma warning ( pop )
195
248
  #endif
249
+
250
+ #endif
@@ -7,6 +7,75 @@
7
7
  // See http://www.boost.org/libs/type_traits for most recent version including documentation.
8
8
 
9
9
  #include <boost/config.hpp>
10
+ #include <boost/type_traits/detail/config.hpp>
11
+
12
+ #if defined(BOOST_TT_HAS_ACCURATE_BINARY_OPERATOR_DETECTION)
13
+
14
+ #include <boost/type_traits/integral_constant.hpp>
15
+ #include <boost/type_traits/make_void.hpp>
16
+ #include <boost/type_traits/is_convertible.hpp>
17
+ #include <boost/type_traits/is_void.hpp>
18
+ #include <boost/type_traits/add_reference.hpp>
19
+ #include <utility>
20
+
21
+ #ifdef BOOST_GCC
22
+ #pragma GCC diagnostic push
23
+ #pragma GCC diagnostic ignored "-Wdeprecated"
24
+ #endif
25
+ #if defined(BOOST_MSVC)
26
+ # pragma warning ( push )
27
+ # pragma warning ( disable : 4804)
28
+ #endif
29
+
30
+ namespace boost
31
+ {
32
+
33
+ namespace binary_op_detail {
34
+
35
+ struct dont_care;
36
+
37
+ template <class T, class Ret, class = boost::void_t<>>
38
+ struct BOOST_JOIN(BOOST_TT_TRAIT_NAME, _ret_imp) : public boost::false_type {};
39
+
40
+ template <class T, class Ret>
41
+ struct BOOST_JOIN(BOOST_TT_TRAIT_NAME, _ret_imp)<T, Ret, boost::void_t<decltype(BOOST_TT_TRAIT_OP std::declval<typename add_reference<T>::type>()) > >
42
+ : public boost::integral_constant<bool, ::boost::is_convertible<decltype(BOOST_TT_TRAIT_OP std::declval<typename add_reference<T>::type>() ), Ret>::value> {};
43
+
44
+ template <class T, class = boost::void_t<> >
45
+ struct BOOST_JOIN(BOOST_TT_TRAIT_NAME, _void_imp) : public boost::false_type {};
46
+
47
+ template <class T>
48
+ struct BOOST_JOIN(BOOST_TT_TRAIT_NAME, _void_imp)<T, boost::void_t<decltype(BOOST_TT_TRAIT_OP std::declval<typename add_reference<T>::type>())> >
49
+ : public boost::integral_constant<bool, ::boost::is_void<decltype(BOOST_TT_TRAIT_OP std::declval<typename add_reference<T>::type>())>::value> {};
50
+
51
+ template <class T, class = boost::void_t<>>
52
+ struct BOOST_JOIN(BOOST_TT_TRAIT_NAME, _dc_imp) : public boost::false_type {};
53
+
54
+ template <class T>
55
+ struct BOOST_JOIN(BOOST_TT_TRAIT_NAME, _dc_imp)<T, boost::void_t<decltype(BOOST_TT_TRAIT_OP std::declval<typename add_reference<T>::type>() )> >
56
+ : public boost::true_type {};
57
+
58
+ }
59
+
60
+ template <class T, class Ret = boost::binary_op_detail::dont_care>
61
+ struct BOOST_TT_TRAIT_NAME : public boost::binary_op_detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME, _ret_imp) <T, Ret> {};
62
+ template <class T>
63
+ struct BOOST_TT_TRAIT_NAME<T, void> : public boost::binary_op_detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME, _void_imp) <T> {};
64
+ template <class T>
65
+ struct BOOST_TT_TRAIT_NAME<T, boost::binary_op_detail::dont_care> : public boost::binary_op_detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME, _dc_imp) <T> {};
66
+
67
+
68
+ }
69
+
70
+ #ifdef BOOST_GCC
71
+ #pragma GCC diagnostic pop
72
+ #endif
73
+ #if defined(BOOST_MSVC)
74
+ # pragma warning ( pop )
75
+ #endif
76
+
77
+ #else
78
+
10
79
  #include <boost/type_traits/detail/yes_no_type.hpp>
11
80
  #include <boost/type_traits/integral_constant.hpp>
12
81
  #include <boost/type_traits/is_const.hpp>
@@ -206,3 +275,6 @@ struct BOOST_TT_TRAIT_NAME : public integral_constant
206
275
  #if defined(BOOST_MSVC)
207
276
  # pragma warning ( pop )
208
277
  #endif
278
+
279
+ #endif
280
+
@@ -0,0 +1,108 @@
1
+
2
+ // Copyright 2000 John Maddock (john@johnmaddock.co.uk)
3
+ // Copyright 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com)
4
+ //
5
+ // Use, modification and distribution are subject to the Boost Software License,
6
+ // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7
+ // http://www.boost.org/LICENSE_1_0.txt).
8
+ //
9
+ // See http://www.boost.org/libs/type_traits for most recent version including documentation.
10
+
11
+ #ifndef BOOST_TT_IS_FUNCTION_CXX_03_HPP_INCLUDED
12
+ #define BOOST_TT_IS_FUNCTION_CXX_03_HPP_INCLUDED
13
+
14
+ #include <boost/type_traits/is_reference.hpp>
15
+
16
+ #if !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
17
+ # include <boost/type_traits/detail/is_function_ptr_helper.hpp>
18
+ #else
19
+ # include <boost/type_traits/detail/is_function_ptr_tester.hpp>
20
+ # include <boost/type_traits/detail/yes_no_type.hpp>
21
+ #endif
22
+
23
+ // is a type a function?
24
+ // Please note that this implementation is unnecessarily complex:
25
+ // we could just use !is_convertible<T*, const volatile void*>::value,
26
+ // except that some compilers erroneously allow conversions from
27
+ // function pointers to void*.
28
+
29
+ namespace boost {
30
+
31
+ #if !defined( __CODEGEARC__ )
32
+
33
+ namespace detail {
34
+
35
+ #if !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
36
+ template<bool is_ref = true>
37
+ struct is_function_chooser
38
+ {
39
+ template< typename T > struct result_
40
+ : public false_type {};
41
+ };
42
+
43
+ template <>
44
+ struct is_function_chooser<false>
45
+ {
46
+ template< typename T > struct result_
47
+ : public ::boost::type_traits::is_function_ptr_helper<T*> {};
48
+ };
49
+
50
+ template <typename T>
51
+ struct is_function_impl
52
+ : public is_function_chooser< ::boost::is_reference<T>::value >
53
+ ::BOOST_NESTED_TEMPLATE result_<T>
54
+ {
55
+ };
56
+
57
+ #else
58
+
59
+ template <typename T>
60
+ struct is_function_impl
61
+ {
62
+ #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
63
+ #pragma warning(push)
64
+ #pragma warning(disable:6334)
65
+ #endif
66
+ static T* t;
67
+ BOOST_STATIC_CONSTANT(
68
+ bool, value = sizeof(::boost::type_traits::is_function_ptr_tester(t))
69
+ == sizeof(::boost::type_traits::yes_type)
70
+ );
71
+ #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
72
+ #pragma warning(pop)
73
+ #endif
74
+ };
75
+
76
+ template <typename T>
77
+ struct is_function_impl<T&> : public false_type
78
+ {};
79
+ #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
80
+ template <typename T>
81
+ struct is_function_impl<T&&> : public false_type
82
+ {};
83
+ #endif
84
+
85
+ #endif
86
+
87
+ } // namespace detail
88
+
89
+ #endif // !defined( __CODEGEARC__ )
90
+
91
+ #if defined( __CODEGEARC__ )
92
+ template <class T> struct is_function : integral_constant<bool, __is_function(T)> {};
93
+ #else
94
+ template <class T> struct is_function : integral_constant<bool, ::boost::detail::is_function_impl<T>::value> {};
95
+ #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
96
+ template <class T> struct is_function<T&&> : public false_type {};
97
+ #endif
98
+ #if !BOOST_WORKAROUND(BOOST_MSVC, <= 1600)
99
+ template <class T> struct is_function<T&> : public false_type {};
100
+ #endif
101
+ #endif
102
+ } // namespace boost
103
+
104
+ #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, <= 1700)
105
+ #include <boost/type_traits/detail/is_function_msvc10_fix.hpp>
106
+ #endif
107
+
108
+ #endif // BOOST_TT_IS_FUNCTION_CXX_03_HPP_INCLUDED
@@ -0,0 +1,501 @@
1
+
2
+ // Copyright 2000 John Maddock (john@johnmaddock.co.uk)
3
+ // Copyright 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com)
4
+ //
5
+ // Use, modification and distribution are subject to the Boost Software License,
6
+ // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7
+ // http://www.boost.org/LICENSE_1_0.txt).
8
+ //
9
+ // See http://www.boost.org/libs/type_traits for most recent version including documentation.
10
+
11
+ #ifndef BOOST_TT_IS_FUNCTION_CXX_11_HPP_INCLUDED
12
+ #define BOOST_TT_IS_FUNCTION_CXX_11_HPP_INCLUDED
13
+
14
+ #include <boost/type_traits/integral_constant.hpp>
15
+
16
+ namespace boost {
17
+
18
+ template <class T>
19
+ struct is_function : public false_type {};
20
+
21
+ #if defined(__cpp_noexcept_function_type) && !defined(_MSC_VER)
22
+ #define BOOST_TT_NOEXCEPT_PARAM , bool NE
23
+ #define BOOST_TT_NOEXCEPT_DECL noexcept(NE)
24
+ #else
25
+ #define BOOST_TT_NOEXCEPT_PARAM
26
+ #define BOOST_TT_NOEXCEPT_DECL
27
+ #endif
28
+
29
+ #ifdef _MSC_VER
30
+ #define BOOST_TT_DEF_CALL __cdecl
31
+ #else
32
+ #define BOOST_TT_DEF_CALL
33
+ #endif
34
+
35
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
36
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
37
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
38
+ struct is_function<Ret(Args..., ...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
39
+ // const qualified:
40
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
41
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
42
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
43
+ struct is_function<Ret(Args..., ...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
44
+ // volatile:
45
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
46
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
47
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
48
+ struct is_function<Ret(Args..., ...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
49
+ // const volatile
50
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
51
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
52
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
53
+ struct is_function<Ret(Args..., ...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
54
+
55
+ // Reference qualified:
56
+
57
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
58
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)& BOOST_TT_NOEXCEPT_DECL> : public true_type {};
59
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
60
+ struct is_function<Ret(Args..., ...)& BOOST_TT_NOEXCEPT_DECL> : public true_type {};
61
+ // const qualified:
62
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
63
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)const & BOOST_TT_NOEXCEPT_DECL> : public true_type {};
64
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
65
+ struct is_function<Ret(Args..., ...)const & BOOST_TT_NOEXCEPT_DECL> : public true_type {};
66
+ // volatile:
67
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
68
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)volatile & BOOST_TT_NOEXCEPT_DECL> : public true_type {};
69
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
70
+ struct is_function<Ret(Args..., ...)volatile & BOOST_TT_NOEXCEPT_DECL> : public true_type {};
71
+ // const volatile
72
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
73
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)const volatile & BOOST_TT_NOEXCEPT_DECL> : public true_type {};
74
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
75
+ struct is_function<Ret(Args..., ...)const volatile & BOOST_TT_NOEXCEPT_DECL> : public true_type {};
76
+
77
+ // rvalue reference qualified:
78
+
79
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
80
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)&& BOOST_TT_NOEXCEPT_DECL> : public true_type {};
81
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
82
+ struct is_function<Ret(Args..., ...)&& BOOST_TT_NOEXCEPT_DECL> : public true_type {};
83
+ // const qualified:
84
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
85
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)const && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
86
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
87
+ struct is_function<Ret(Args..., ...)const && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
88
+ // volatile:
89
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
90
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)volatile && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
91
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
92
+ struct is_function<Ret(Args..., ...)volatile && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
93
+ // const volatile
94
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
95
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)const volatile && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
96
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
97
+ struct is_function<Ret(Args..., ...)const volatile && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
98
+
99
+ #ifdef _MSC_VER
100
+ #ifdef __CLR_VER
101
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
102
+ struct is_function<Ret __clrcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
103
+ #endif
104
+ #ifndef _M_AMD64
105
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
106
+ struct is_function<Ret __stdcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
107
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
108
+ struct is_function<Ret __fastcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
109
+ #endif
110
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
111
+ struct is_function<Ret __vectorcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
112
+ // const:
113
+ #ifdef __CLR_VER
114
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
115
+ struct is_function<Ret __clrcall(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
116
+ #endif
117
+ #ifndef _M_AMD64
118
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
119
+ struct is_function<Ret __stdcall(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
120
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
121
+ struct is_function<Ret __fastcall(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
122
+ #endif
123
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
124
+ struct is_function<Ret __vectorcall(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
125
+ // volatile:
126
+ #ifdef __CLR_VER
127
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
128
+ struct is_function<Ret __clrcall(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
129
+ #endif
130
+ #ifndef _M_AMD64
131
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
132
+ struct is_function<Ret __stdcall(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
133
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
134
+ struct is_function<Ret __fastcall(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
135
+ #endif
136
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
137
+ struct is_function<Ret __vectorcall(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
138
+ // const volatile:
139
+ #ifdef __CLR_VER
140
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
141
+ struct is_function<Ret __clrcall(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
142
+ #endif
143
+ #ifndef _M_AMD64
144
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
145
+ struct is_function<Ret __stdcall(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
146
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
147
+ struct is_function<Ret __fastcall(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
148
+ #endif
149
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
150
+ struct is_function<Ret __vectorcall(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
151
+
152
+ // reference qualified:
153
+ #ifdef __CLR_VER
154
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
155
+ struct is_function<Ret __clrcall(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
156
+ #endif
157
+ #ifndef _M_AMD64
158
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
159
+ struct is_function<Ret __stdcall(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
160
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
161
+ struct is_function<Ret __fastcall(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
162
+ #endif
163
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
164
+ struct is_function<Ret __vectorcall(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
165
+ // const:
166
+ #ifdef __CLR_VER
167
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
168
+ struct is_function<Ret __clrcall(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
169
+ #endif
170
+ #ifndef _M_AMD64
171
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
172
+ struct is_function<Ret __stdcall(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
173
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
174
+ struct is_function<Ret __fastcall(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
175
+ #endif
176
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
177
+ struct is_function<Ret __vectorcall(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
178
+ // volatile:
179
+ #ifdef __CLR_VER
180
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
181
+ struct is_function<Ret __clrcall(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
182
+ #endif
183
+ #ifndef _M_AMD64
184
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
185
+ struct is_function<Ret __stdcall(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
186
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
187
+ struct is_function<Ret __fastcall(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
188
+ #endif
189
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
190
+ struct is_function<Ret __vectorcall(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
191
+ // const volatile:
192
+ #ifdef __CLR_VER
193
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
194
+ struct is_function<Ret __clrcall(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
195
+ #endif
196
+ #ifndef _M_AMD64
197
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
198
+ struct is_function<Ret __stdcall(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
199
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
200
+ struct is_function<Ret __fastcall(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
201
+ #endif
202
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
203
+ struct is_function<Ret __vectorcall(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
204
+
205
+ // rvalue reference qualified:
206
+ #ifdef __CLR_VER
207
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
208
+ struct is_function<Ret __clrcall(Args...)&&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
209
+ #endif
210
+ #ifndef _M_AMD64
211
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
212
+ struct is_function<Ret __stdcall(Args...)&&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
213
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
214
+ struct is_function<Ret __fastcall(Args...)&&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
215
+ #endif
216
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
217
+ struct is_function<Ret __vectorcall(Args...)&&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
218
+ // const:
219
+ #ifdef __CLR_VER
220
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
221
+ struct is_function<Ret __clrcall(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
222
+ #endif
223
+ #ifndef _M_AMD64
224
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
225
+ struct is_function<Ret __stdcall(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
226
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
227
+ struct is_function<Ret __fastcall(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
228
+ #endif
229
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
230
+ struct is_function<Ret __vectorcall(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
231
+ // volatile:
232
+ #ifdef __CLR_VER
233
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
234
+ struct is_function<Ret __clrcall(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
235
+ #endif
236
+ #ifndef _M_AMD64
237
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
238
+ struct is_function<Ret __stdcall(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
239
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
240
+ struct is_function<Ret __fastcall(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
241
+ #endif
242
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
243
+ struct is_function<Ret __vectorcall(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
244
+ // const volatile:
245
+ #ifdef __CLR_VER
246
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
247
+ struct is_function<Ret __clrcall(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
248
+ #endif
249
+ #ifndef _M_AMD64
250
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
251
+ struct is_function<Ret __stdcall(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
252
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
253
+ struct is_function<Ret __fastcall(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
254
+ #endif
255
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
256
+ struct is_function<Ret __vectorcall(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
257
+
258
+ #endif // _MSC_VER
259
+
260
+ // All over again for msvc with noexcept:
261
+
262
+ #if defined(_MSVC_LANG) && (_MSVC_LANG >= 201703)
263
+
264
+ #undef BOOST_TT_NOEXCEPT_DECL
265
+ #define BOOST_TT_NOEXCEPT_DECL noexcept
266
+
267
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
268
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
269
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
270
+ struct is_function<Ret(Args..., ...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
271
+ // const qualified:
272
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
273
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
274
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
275
+ struct is_function<Ret(Args..., ...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
276
+ // volatile:
277
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
278
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
279
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
280
+ struct is_function<Ret(Args..., ...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
281
+ // const volatile
282
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
283
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
284
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
285
+ struct is_function<Ret(Args..., ...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
286
+
287
+ // Reference qualified:
288
+
289
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
290
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)& BOOST_TT_NOEXCEPT_DECL> : public true_type {};
291
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
292
+ struct is_function<Ret(Args..., ...)& BOOST_TT_NOEXCEPT_DECL> : public true_type {};
293
+ // const qualified:
294
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
295
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)const & BOOST_TT_NOEXCEPT_DECL> : public true_type {};
296
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
297
+ struct is_function<Ret(Args..., ...)const & BOOST_TT_NOEXCEPT_DECL> : public true_type {};
298
+ // volatile:
299
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
300
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)volatile & BOOST_TT_NOEXCEPT_DECL> : public true_type {};
301
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
302
+ struct is_function<Ret(Args..., ...)volatile & BOOST_TT_NOEXCEPT_DECL> : public true_type {};
303
+ // const volatile
304
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
305
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)const volatile & BOOST_TT_NOEXCEPT_DECL> : public true_type {};
306
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
307
+ struct is_function<Ret(Args..., ...)const volatile & BOOST_TT_NOEXCEPT_DECL> : public true_type {};
308
+
309
+ // rvalue reference qualified:
310
+
311
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
312
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...) && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
313
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
314
+ struct is_function<Ret(Args..., ...) && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
315
+ // const qualified:
316
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
317
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)const && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
318
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
319
+ struct is_function<Ret(Args..., ...)const && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
320
+ // volatile:
321
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
322
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)volatile && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
323
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
324
+ struct is_function<Ret(Args..., ...)volatile && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
325
+ // const volatile
326
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
327
+ struct is_function<Ret BOOST_TT_DEF_CALL(Args...)const volatile && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
328
+ template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
329
+ struct is_function<Ret(Args..., ...)const volatile && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
330
+
331
+ #ifdef _MSC_VER
332
+ #ifdef __CLR_VER
333
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
334
+ struct is_function<Ret __clrcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
335
+ #endif
336
+ #ifndef _M_AMD64
337
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
338
+ struct is_function<Ret __stdcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
339
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
340
+ struct is_function<Ret __fastcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
341
+ #endif
342
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
343
+ struct is_function<Ret __vectorcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
344
+ // const:
345
+ #ifdef __CLR_VER
346
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
347
+ struct is_function<Ret __clrcall(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
348
+ #endif
349
+ #ifndef _M_AMD64
350
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
351
+ struct is_function<Ret __stdcall(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
352
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
353
+ struct is_function<Ret __fastcall(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
354
+ #endif
355
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
356
+ struct is_function<Ret __vectorcall(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
357
+ // volatile:
358
+ #ifdef __CLR_VER
359
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
360
+ struct is_function<Ret __clrcall(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
361
+ #endif
362
+ #ifndef _M_AMD64
363
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
364
+ struct is_function<Ret __stdcall(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
365
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
366
+ struct is_function<Ret __fastcall(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
367
+ #endif
368
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
369
+ struct is_function<Ret __vectorcall(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
370
+ // const volatile:
371
+ #ifdef __CLR_VER
372
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
373
+ struct is_function<Ret __clrcall(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
374
+ #endif
375
+ #ifndef _M_AMD64
376
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
377
+ struct is_function<Ret __stdcall(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
378
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
379
+ struct is_function<Ret __fastcall(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
380
+ #endif
381
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
382
+ struct is_function<Ret __vectorcall(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
383
+
384
+ // reference qualified:
385
+ #ifdef __CLR_VER
386
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
387
+ struct is_function<Ret __clrcall(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
388
+ #endif
389
+ #ifndef _M_AMD64
390
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
391
+ struct is_function<Ret __stdcall(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
392
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
393
+ struct is_function<Ret __fastcall(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
394
+ #endif
395
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
396
+ struct is_function<Ret __vectorcall(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
397
+ // const:
398
+ #ifdef __CLR_VER
399
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
400
+ struct is_function<Ret __clrcall(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
401
+ #endif
402
+ #ifndef _M_AMD64
403
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
404
+ struct is_function<Ret __stdcall(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
405
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
406
+ struct is_function<Ret __fastcall(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
407
+ #endif
408
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
409
+ struct is_function<Ret __vectorcall(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
410
+ // volatile:
411
+ #ifdef __CLR_VER
412
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
413
+ struct is_function<Ret __clrcall(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
414
+ #endif
415
+ #ifndef _M_AMD64
416
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
417
+ struct is_function<Ret __stdcall(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
418
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
419
+ struct is_function<Ret __fastcall(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
420
+ #endif
421
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
422
+ struct is_function<Ret __vectorcall(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
423
+ // const volatile:
424
+ #ifdef __CLR_VER
425
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
426
+ struct is_function<Ret __clrcall(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
427
+ #endif
428
+ #ifndef _M_AMD64
429
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
430
+ struct is_function<Ret __stdcall(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
431
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
432
+ struct is_function<Ret __fastcall(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
433
+ #endif
434
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
435
+ struct is_function<Ret __vectorcall(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
436
+
437
+ // rvalue reference qualified:
438
+ #ifdef __CLR_VER
439
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
440
+ struct is_function<Ret __clrcall(Args...) && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
441
+ #endif
442
+ #ifndef _M_AMD64
443
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
444
+ struct is_function<Ret __stdcall(Args...) && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
445
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
446
+ struct is_function<Ret __fastcall(Args...) && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
447
+ #endif
448
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
449
+ struct is_function<Ret __vectorcall(Args...) && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
450
+ // const:
451
+ #ifdef __CLR_VER
452
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
453
+ struct is_function<Ret __clrcall(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
454
+ #endif
455
+ #ifndef _M_AMD64
456
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
457
+ struct is_function<Ret __stdcall(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
458
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
459
+ struct is_function<Ret __fastcall(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
460
+ #endif
461
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
462
+ struct is_function<Ret __vectorcall(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
463
+ // volatile:
464
+ #ifdef __CLR_VER
465
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
466
+ struct is_function<Ret __clrcall(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
467
+ #endif
468
+ #ifndef _M_AMD64
469
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
470
+ struct is_function<Ret __stdcall(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
471
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
472
+ struct is_function<Ret __fastcall(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
473
+ #endif
474
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
475
+ struct is_function<Ret __vectorcall(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
476
+ // const volatile:
477
+ #ifdef __CLR_VER
478
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
479
+ struct is_function<Ret __clrcall(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
480
+ #endif
481
+ #ifndef _M_AMD64
482
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
483
+ struct is_function<Ret __stdcall(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
484
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
485
+ struct is_function<Ret __fastcall(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
486
+ #endif
487
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
488
+ struct is_function<Ret __vectorcall(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
489
+
490
+ #endif // _MSC_VER
491
+
492
+ #endif
493
+
494
+ }
495
+
496
+ #undef BOOST_TT_NOEXCEPT_DECL
497
+ #undef BOOST_TT_NOEXCEPT_PARAM
498
+ #undef BOOST_TT_DEF_CALL
499
+
500
+ #endif // BOOST_TT_IS_FUNCTION_CXX_11_HPP_INCLUDED
501
+