summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2013-01-12 18:41:34 (GMT)
committerSwift Review <review@swift.im>2013-01-13 10:36:26 (GMT)
commitf3bc816af1b0d61452de973963e453bf3b3f95a2 (patch)
treee895f8afa3580e6cff6f5ad2017d45bf147a17c2 /3rdParty
parent188fc285c6555eadd3c9d50ab8a94adcade78d89 (diff)
downloadswift-f3bc816af1b0d61452de973963e453bf3b3f95a2.zip
swift-f3bc816af1b0d61452de973963e453bf3b3f95a2.tar.bz2
Adding in the spirit Boost stuff
Change-Id: I4f127ce61667243b64081b0aa309028d5077045f
Diffstat (limited to '3rdParty')
-rw-r--r--3rdParty/Boost/src/boost/function_types/components.hpp431
-rw-r--r--3rdParty/Boost/src/boost/function_types/config/cc_names.hpp31
-rw-r--r--3rdParty/Boost/src/boost/function_types/config/compiler.hpp116
-rw-r--r--3rdParty/Boost/src/boost/function_types/config/config.hpp59
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/class_transform.hpp62
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/classifier.hpp82
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity10_0.hpp55
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity10_1.hpp52
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity20_0.hpp53
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity20_1.hpp53
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity30_0.hpp53
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity30_1.hpp53
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity40_0.hpp53
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity40_1.hpp53
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity50_0.hpp53
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity50_1.hpp52
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/classifier_impl/master.hpp33
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/components_as_mpl_sequence.hpp138
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/components_impl/arity10_0.hpp132
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/components_impl/arity10_1.hpp122
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/components_impl/arity20_0.hpp123
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/components_impl/arity20_1.hpp123
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/components_impl/arity30_0.hpp123
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/components_impl/arity30_1.hpp123
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/components_impl/arity40_0.hpp123
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/components_impl/arity40_1.hpp123
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/components_impl/arity50_0.hpp123
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/components_impl/arity50_1.hpp123
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/components_impl/master.hpp61
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/cv_traits.hpp134
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/encoding/aliases_def.hpp16
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/encoding/aliases_undef.hpp16
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/encoding/def.hpp51
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/encoding/undef.hpp38
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/pp_arity_loop.hpp149
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/pp_cc_loop/master.hpp136
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/pp_cc_loop/preprocessed.hpp120
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/pp_loop.hpp80
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/pp_retag_default_cc/master.hpp103
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/pp_retag_default_cc/preprocessed.hpp59
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/pp_tags/cc_tag.hpp17
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/pp_tags/master.hpp126
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/pp_tags/preprocessed.hpp77
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/pp_variate_loop/master.hpp152
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/pp_variate_loop/preprocessed.hpp283
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/retag_default_cc.hpp23
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/synthesize.hpp79
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity10_0.hpp334
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity10_1.hpp326
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity20_0.hpp517
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity20_1.hpp527
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity30_0.hpp717
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity30_1.hpp727
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity40_0.hpp917
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity40_1.hpp927
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity50_0.hpp1117
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity50_1.hpp1127
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/master.hpp87
-rw-r--r--3rdParty/Boost/src/boost/function_types/detail/to_sequence.hpp47
-rw-r--r--3rdParty/Boost/src/boost/function_types/is_callable_builtin.hpp35
-rw-r--r--3rdParty/Boost/src/boost/function_types/is_function.hpp34
-rw-r--r--3rdParty/Boost/src/boost/function_types/parameter_types.hpp55
-rw-r--r--3rdParty/Boost/src/boost/function_types/property_tags.hpp149
-rw-r--r--3rdParty/Boost/src/boost/function_types/result_type.hpp50
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/mpl.hpp22
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/mpl/detail/at_impl.hpp40
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/mpl/detail/begin_impl.hpp45
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/mpl/detail/category_of_impl.hpp54
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/mpl/detail/empty_impl.hpp31
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/mpl/detail/end_impl.hpp45
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/mpl/detail/has_key_impl.hpp31
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/mpl/detail/is_sequence_impl.hpp31
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/mpl/detail/is_view_impl.hpp32
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/mpl/detail/size_impl.hpp31
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/mpl/detail/value_at_impl.hpp31
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/mpl/mpl_iterator.hpp113
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/struct/adapt_struct.hpp71
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/struct/detail/adapt_base.hpp245
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/struct/detail/at_impl.hpp38
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/struct/detail/begin_impl.hpp67
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/struct/detail/category_of_impl.hpp42
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/struct/detail/deref_impl.hpp41
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/struct/detail/end_impl.hpp67
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/struct/detail/extension.hpp57
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp35
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/struct/detail/is_view_impl.hpp33
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/struct/detail/size_impl.hpp33
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/struct/detail/value_at_impl.hpp33
-rw-r--r--3rdParty/Boost/src/boost/fusion/adapted/struct/detail/value_of_impl.hpp29
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/auxiliary/copy.hpp84
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/iteration/detail/fold.hpp462
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/iteration/detail/for_each.hpp138
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/iteration/detail/preprocessed/fold.hpp381
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/iteration/detail/preprocessed/reverse_fold.hpp380
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/iteration/detail/segmented_fold.hpp59
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/iteration/detail/segmented_for_each.hpp48
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/iteration/fold.hpp63
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/iteration/fold_fwd.hpp52
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/iteration/for_each.hpp53
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/iteration/for_each_fwd.hpp40
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/iteration/reverse_fold.hpp64
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/iteration/reverse_fold_fwd.hpp52
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/query/any.hpp35
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/query/detail/any.hpp130
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/query/detail/find_if.hpp252
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/query/detail/segmented_find.hpp90
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/query/find.hpp69
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/query/find_fwd.hpp34
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/query/find_if_fwd.hpp35
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/transformation/erase.hpp135
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/transformation/erase_key.hpp34
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/transformation/filter_if.hpp32
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/transformation/insert.hpp69
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/transformation/insert_range.hpp55
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/transformation/pop_back.hpp166
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/transformation/pop_front.hpp43
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/transformation/push_back.hpp46
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/transformation/push_front.hpp46
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/transformation/reverse.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/algorithm/transformation/transform.hpp51
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/deque/deque_fwd.hpp35
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/deque/detail/pp_deque_fwd.hpp54
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/deque/detail/preprocessed/deque10_fwd.hpp15
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/deque/detail/preprocessed/deque20_fwd.hpp15
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/deque/detail/preprocessed/deque30_fwd.hpp15
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/deque/detail/preprocessed/deque40_fwd.hpp15
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/deque/detail/preprocessed/deque50_fwd.hpp15
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/deque/detail/preprocessed/deque_fwd.hpp22
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/deque/limits.hpp32
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/generation/detail/preprocessed/make_vector.hpp22
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/generation/detail/preprocessed/make_vector10.hpp180
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/generation/detail/preprocessed/make_vector20.hpp330
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/generation/detail/preprocessed/make_vector30.hpp480
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/generation/detail/preprocessed/make_vector40.hpp630
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/generation/detail/preprocessed/make_vector50.hpp780
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/generation/make_vector.hpp117
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/cons.hpp144
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/cons_fwd.hpp20
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/cons_iterator.hpp89
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/convert.hpp56
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/at_impl.hpp132
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/begin_impl.hpp49
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/build_cons.hpp58
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/convert_impl.hpp51
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/deref_impl.hpp52
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/empty_impl.hpp37
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/end_impl.hpp51
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/equal_to_impl.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/next_impl.hpp59
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp16
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp16
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp16
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp16
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp16
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp22
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/reverse_cons.hpp43
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/value_at_impl.hpp42
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/value_of_impl.hpp36
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/limits.hpp21
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/list_fwd.hpp50
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/map/detail/preprocessed/map10_fwd.hpp18
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/map/detail/preprocessed/map20_fwd.hpp18
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/map/detail/preprocessed/map30_fwd.hpp18
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/map/detail/preprocessed/map40_fwd.hpp18
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/map/detail/preprocessed/map50_fwd.hpp18
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/map/detail/preprocessed/map_fwd.hpp22
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/map/limits.hpp27
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/map/map_fwd.hpp52
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/set/detail/preprocessed/set10_fwd.hpp18
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/set/detail/preprocessed/set20_fwd.hpp18
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/set/detail/preprocessed/set30_fwd.hpp18
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/set/detail/preprocessed/set40_fwd.hpp18
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/set/detail/preprocessed/set50_fwd.hpp18
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/set/detail/preprocessed/set_fwd.hpp22
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/set/limits.hpp27
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/set/set_fwd.hpp52
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector.hpp31
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/convert.hpp47
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/advance_impl.hpp42
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/as_vector.hpp131
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/at_impl.hpp56
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/begin_impl.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/convert_impl.hpp45
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/deref_impl.hpp54
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/distance_impl.hpp41
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/end_impl.hpp40
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/equal_to_impl.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/next_impl.hpp43
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/as_vector.hpp22
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/as_vector10.hpp211
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/as_vector20.hpp411
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/as_vector30.hpp611
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/as_vector40.hpp811
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/as_vector50.hpp1011
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector.hpp22
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector10.hpp1004
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp33
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector20.hpp1004
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp33
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector30.hpp1004
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp33
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector40.hpp1004
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp33
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector50.hpp1004
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp33
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp21
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp84
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp154
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp224
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp294
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp364
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp22
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp122
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp16
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp142
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp16
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp162
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp16
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp182
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp16
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp202
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp16
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/prior_impl.hpp43
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/value_at_impl.hpp33
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/value_of_impl.hpp37
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/vector_forward_ctor.hpp50
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/vector_n.hpp209
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/detail/vector_n_chooser.hpp107
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/limits.hpp23
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/vector.hpp213
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/vector10.hpp97
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/vector10_fwd.hpp63
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/vector20.hpp78
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/vector20_fwd.hpp58
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/vector30.hpp77
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/vector30_fwd.hpp58
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/vector40.hpp78
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/vector40_fwd.hpp58
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/vector50.hpp77
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/vector50_fwd.hpp58
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/vector_fwd.hpp65
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/vector/vector_iterator.hpp50
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/any.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/as_list.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/as_vector.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/at.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/at_c.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/begin.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/category_of.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/cons.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/copy.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/end.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/filter_if.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/fold.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/for_each.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/intrinsic.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/is_segmented.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/is_sequence.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/is_view.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/iterator_base.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/make_vector.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/mpl.hpp13
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/next.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/pop_back.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/pop_front.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/prior.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/push_back.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/push_front.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/reverse.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/reverse_fold.hpp13
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/single_view.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/size.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/tag_of_fwd.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/transform.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/value_at.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/value_of.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/vector.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/include/void.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/advance.hpp92
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/basic_iterator.hpp141
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/deref.hpp72
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/deref_data.hpp49
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/detail/adapt_deref_traits.hpp34
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/detail/adapt_value_traits.hpp28
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/detail/advance.hpp102
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/detail/distance.hpp64
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/detail/segment_sequence.hpp71
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/detail/segmented_equal_to.hpp41
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/detail/segmented_iterator.hpp144
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/detail/segmented_next_impl.hpp254
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/distance.hpp78
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/equal_to.hpp103
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/iterator_adapter.hpp125
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/iterator_facade.hpp57
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/key_of.hpp42
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/mpl.hpp13
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/mpl/convert_iterator.hpp58
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/mpl/fusion_iterator.hpp79
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/next.hpp63
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/prior.hpp63
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/segmented_iterator.hpp15
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/value_of.hpp57
-rw-r--r--3rdParty/Boost/src/boost/fusion/iterator/value_of_data.hpp42
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl.hpp32
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/at.hpp33
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/back.hpp32
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/begin.hpp31
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/clear.hpp33
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/detail/clear.hpp46
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/empty.hpp26
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/end.hpp31
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/erase.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/erase_key.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/front.hpp28
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/has_key.hpp27
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/insert.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/insert_range.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/pop_back.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/pop_front.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/push_back.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/push_front.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/mpl/size.hpp26
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/comparison/detail/equal_to.hpp61
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/comparison/enable_comparison.hpp34
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/convert.hpp48
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic.hpp23
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at.hpp111
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at_c.hpp13
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at_key.hpp93
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/back.hpp43
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/begin.hpp95
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp43
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp92
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp59
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp54
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/empty.hpp61
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/end.hpp95
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/front.hpp42
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/has_key.hpp79
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/segments.hpp76
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/size.hpp88
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/value_at.hpp68
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/value_at_key.hpp66
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic_fwd.hpp203
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/sequence_facade.hpp29
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/as_const.hpp26
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/category_of.hpp112
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/detail/access.hpp64
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/detail/as_fusion_element.hpp47
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/detail/category_of.hpp19
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/detail/is_mpl_sequence.hpp27
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/detail/is_view.hpp19
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/detail/mpl_iterator_category.hpp66
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/detail/pp_round.hpp71
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/detail/segmented_fold_until_impl.hpp389
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/is_iterator.hpp20
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/is_segmented.hpp54
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/is_sequence.hpp76
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/is_view.hpp66
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/iterator_base.hpp31
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/segmented_fold_until.hpp73
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/sequence_base.hpp54
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/tag_of.hpp82
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/tag_of_fwd.hpp20
-rw-r--r--3rdParty/Boost/src/boost/fusion/support/void.hpp15
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/detail/strictest_traversal.hpp76
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/filter_view/detail/begin_impl.hpp46
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/filter_view/detail/deref_data_impl.hpp37
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/filter_view/detail/deref_impl.hpp29
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/filter_view/detail/end_impl.hpp45
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/filter_view/detail/equal_to_impl.hpp34
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/filter_view/detail/key_of_impl.hpp28
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/filter_view/detail/next_impl.hpp77
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/filter_view/detail/size_impl.hpp38
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/filter_view/detail/value_of_data_impl.hpp28
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/filter_view/detail/value_of_impl.hpp29
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/filter_view/filter_view.hpp64
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/filter_view/filter_view_iterator.hpp70
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/iterator_range.hpp12
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/iterator_range/detail/at_impl.hpp44
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/iterator_range/detail/begin_impl.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/iterator_range/detail/end_impl.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp66
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp532
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/iterator_range/detail/segments_impl.hpp52
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/iterator_range/detail/size_impl.hpp37
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/iterator_range/detail/value_at_impl.hpp38
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/iterator_range/iterator_range.hpp61
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/joint_view/detail/begin_impl.hpp67
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/joint_view/detail/deref_data_impl.hpp37
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/joint_view/detail/deref_impl.hpp29
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/joint_view/detail/end_impl.hpp40
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/joint_view/detail/key_of_impl.hpp28
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/joint_view/detail/next_impl.hpp71
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp28
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/joint_view/detail/value_of_impl.hpp29
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/joint_view/joint_view.hpp78
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/joint_view/joint_view_fwd.hpp18
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/joint_view/joint_view_iterator.hpp59
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/reverse_view/detail/advance_impl.hpp47
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/reverse_view/detail/at_impl.hpp41
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/reverse_view/detail/begin_impl.hpp42
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp37
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/reverse_view/detail/deref_impl.hpp48
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/reverse_view/detail/distance_impl.hpp45
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/reverse_view/detail/end_impl.hpp42
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/reverse_view/detail/key_of_impl.hpp28
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/reverse_view/detail/next_impl.hpp47
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/reverse_view/detail/prior_impl.hpp47
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/reverse_view/detail/value_at_impl.hpp33
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/reverse_view/detail/value_of_data_impl.hpp28
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/reverse_view/detail/value_of_impl.hpp42
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/reverse_view/reverse_view.hpp68
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/reverse_view/reverse_view_iterator.hpp56
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/single_view.hpp13
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/single_view/detail/advance_impl.hpp47
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/single_view/detail/at_impl.hpp44
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/single_view/detail/begin_impl.hpp45
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/single_view/detail/deref_impl.hpp45
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/single_view/detail/distance_impl.hpp43
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/single_view/detail/end_impl.hpp45
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/single_view/detail/equal_to_impl.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/single_view/detail/next_impl.hpp50
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/single_view/detail/prior_impl.hpp46
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/single_view/detail/size_impl.hpp33
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/single_view/detail/value_at_impl.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/single_view/detail/value_of_impl.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/single_view/single_view.hpp68
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/single_view/single_view_iterator.hpp58
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/transform_view/detail/advance_impl.hpp75
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/transform_view/detail/apply_transform_result.hpp37
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/transform_view/detail/at_impl.hpp63
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/transform_view/detail/begin_impl.hpp68
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/transform_view/detail/deref_impl.hpp76
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/transform_view/detail/distance_impl.hpp59
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/transform_view/detail/end_impl.hpp68
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/transform_view/detail/equal_to_impl.hpp42
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/transform_view/detail/next_impl.hpp74
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/transform_view/detail/prior_impl.hpp73
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/transform_view/detail/value_at_impl.hpp53
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/transform_view/detail/value_of_impl.hpp63
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/transform_view/transform_view.hpp115
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/transform_view/transform_view_fwd.hpp22
-rw-r--r--3rdParty/Boost/src/boost/fusion/view/transform_view/transform_view_iterator.hpp77
-rw-r--r--3rdParty/Boost/src/boost/mpl/aux_/back_impl.hpp43
-rw-r--r--3rdParty/Boost/src/boost/mpl/aux_/config/operators.hpp33
-rw-r--r--3rdParty/Boost/src/boost/mpl/aux_/erase_impl.hpp69
-rw-r--r--3rdParty/Boost/src/boost/mpl/aux_/erase_key_impl.hpp32
-rw-r--r--3rdParty/Boost/src/boost/mpl/aux_/has_key_impl.hpp34
-rw-r--r--3rdParty/Boost/src/boost/mpl/aux_/insert_impl.hpp68
-rw-r--r--3rdParty/Boost/src/boost/mpl/aux_/insert_range_impl.hpp77
-rw-r--r--3rdParty/Boost/src/boost/mpl/aux_/iter_push_front.hpp36
-rw-r--r--3rdParty/Boost/src/boost/mpl/aux_/joint_iter.hpp120
-rw-r--r--3rdParty/Boost/src/boost/mpl/aux_/order_impl.hpp76
-rw-r--r--3rdParty/Boost/src/boost/mpl/aux_/overload_names.hpp48
-rw-r--r--3rdParty/Boost/src/boost/mpl/aux_/pop_back_impl.hpp34
-rw-r--r--3rdParty/Boost/src/boost/mpl/aux_/pop_front_impl.hpp44
-rw-r--r--3rdParty/Boost/src/boost/mpl/aux_/ptr_to_ref.hpp46
-rw-r--r--3rdParty/Boost/src/boost/mpl/back.hpp39
-rw-r--r--3rdParty/Boost/src/boost/mpl/base.hpp35
-rw-r--r--3rdParty/Boost/src/boost/mpl/begin.hpp19
-rw-r--r--3rdParty/Boost/src/boost/mpl/bitand.hpp45
-rw-r--r--3rdParty/Boost/src/boost/mpl/bitxor.hpp23
-rw-r--r--3rdParty/Boost/src/boost/mpl/empty_base.hpp59
-rw-r--r--3rdParty/Boost/src/boost/mpl/end.hpp19
-rw-r--r--3rdParty/Boost/src/boost/mpl/erase.hpp42
-rw-r--r--3rdParty/Boost/src/boost/mpl/erase_fwd.hpp24
-rw-r--r--3rdParty/Boost/src/boost/mpl/erase_key.hpp41
-rw-r--r--3rdParty/Boost/src/boost/mpl/erase_key_fwd.hpp24
-rw-r--r--3rdParty/Boost/src/boost/mpl/has_key.hpp41
-rw-r--r--3rdParty/Boost/src/boost/mpl/has_key_fwd.hpp25
-rw-r--r--3rdParty/Boost/src/boost/mpl/inherit.hpp229
-rw-r--r--3rdParty/Boost/src/boost/mpl/insert.hpp41
-rw-r--r--3rdParty/Boost/src/boost/mpl/insert_fwd.hpp24
-rw-r--r--3rdParty/Boost/src/boost/mpl/insert_range.hpp41
-rw-r--r--3rdParty/Boost/src/boost/mpl/insert_range_fwd.hpp24
-rw-r--r--3rdParty/Boost/src/boost/mpl/joint_view.hpp65
-rw-r--r--3rdParty/Boost/src/boost/mpl/key_type_fwd.hpp25
-rw-r--r--3rdParty/Boost/src/boost/mpl/limits/map.hpp21
-rw-r--r--3rdParty/Boost/src/boost/mpl/map.hpp57
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/at_impl.hpp144
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/begin_end_impl.hpp50
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/clear_impl.hpp35
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/contains_impl.hpp43
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/empty_impl.hpp34
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/erase_impl.hpp41
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/erase_key_impl.hpp53
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/has_key_impl.hpp44
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/include_preprocessed.hpp53
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/insert_impl.hpp72
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/item.hpp138
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/iterator.hpp169
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/key_type_impl.hpp36
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/map0.hpp74
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/numbered.hpp110
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/preprocessed/no_ctps/map10.hpp350
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/preprocessed/no_ctps/map20.hpp370
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/preprocessed/no_ctps/map30.hpp390
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/preprocessed/no_ctps/map40.hpp410
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/preprocessed/no_ctps/map50.hpp430
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/preprocessed/plain/map10.hpp290
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/preprocessed/plain/map20.hpp310
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/preprocessed/plain/map30.hpp330
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/preprocessed/plain/map40.hpp350
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/preprocessed/plain/map50.hpp370
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/preprocessed/typeof_based/map10.hpp150
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/preprocessed/typeof_based/map20.hpp170
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/preprocessed/typeof_based/map30.hpp190
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/preprocessed/typeof_based/map40.hpp210
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/preprocessed/typeof_based/map50.hpp230
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/size_impl.hpp33
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/tag.hpp24
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/aux_/value_type_impl.hpp36
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/map0.hpp36
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/map10.hpp44
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/map20.hpp44
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/map30.hpp44
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/map40.hpp44
-rw-r--r--3rdParty/Boost/src/boost/mpl/map/map50.hpp44
-rw-r--r--3rdParty/Boost/src/boost/mpl/min.hpp19
-rw-r--r--3rdParty/Boost/src/boost/mpl/order_fwd.hpp25
-rw-r--r--3rdParty/Boost/src/boost/mpl/pop_back.hpp39
-rw-r--r--3rdParty/Boost/src/boost/mpl/pop_front.hpp39
-rw-r--r--3rdParty/Boost/src/boost/mpl/print.hpp74
-rw-r--r--3rdParty/Boost/src/boost/mpl/remove.hpp52
-rw-r--r--3rdParty/Boost/src/boost/mpl/value_type_fwd.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind.hpp20
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/bind_function.hpp118
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/bind_function_object.hpp79
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/bind_member_function.hpp245
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/bind_member_variable.hpp49
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/detail/function_ptr.hpp151
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/detail/member_function_ptr.hpp149
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/detail/member_variable.hpp87
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/detail/preprocessed/function_ptr.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/detail/preprocessed/function_ptr_10.hpp222
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/detail/preprocessed/function_ptr_20.hpp462
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/detail/preprocessed/function_ptr_30.hpp702
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/detail/preprocessed/function_ptr_40.hpp942
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/detail/preprocessed/function_ptr_50.hpp1182
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/detail/preprocessed/member_function_ptr.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/detail/preprocessed/member_function_ptr_10.hpp316
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/detail/preprocessed/member_function_ptr_20.hpp626
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/detail/preprocessed/member_function_ptr_30.hpp936
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/detail/preprocessed/member_function_ptr_40.hpp1246
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/detail/preprocessed/member_function_ptr_50.hpp1556
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_function.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_function_10.hpp326
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_function_20.hpp726
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_function_30.hpp1126
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_function_40.hpp1526
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_function_50.hpp1926
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_function_object.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_function_object_10.hpp222
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_function_object_20.hpp462
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_function_object_30.hpp702
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_function_object_40.hpp942
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_function_object_50.hpp1182
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_member_function.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_member_function_10.hpp1113
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_member_function_20.hpp2343
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_member_function_30.hpp3573
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_member_function_40.hpp4803
-rw-r--r--3rdParty/Boost/src/boost/phoenix/bind/preprocessed/bind_member_function_50.hpp6033
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core.hpp26
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/actor.hpp297
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/argument.hpp150
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/as_actor.hpp28
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/call.hpp75
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/actor_operator.hpp179
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/actor_result_of.hpp107
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/argument.hpp44
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/call.hpp95
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/expression.hpp409
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/function_eval.hpp214
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/phx2_result.hpp105
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/actor_operator.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp567
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/actor_operator_20.hpp1237
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/actor_operator_30.hpp1907
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/actor_operator_40.hpp2577
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/actor_operator_50.hpp3247
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/actor_result_of.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp260
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/actor_result_of_20.hpp480
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/actor_result_of_30.hpp700
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/actor_result_of_40.hpp920
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/actor_result_of_50.hpp1140
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/call.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/call_10.hpp351
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/call_20.hpp691
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/call_30.hpp1031
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/call_40.hpp1371
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/call_50.hpp1711
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/function_eval.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/function_eval_10.hpp507
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/function_eval_20.hpp1007
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/function_eval_30.hpp1507
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/function_eval_40.hpp2007
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/function_eval_50.hpp2507
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/phx2_result.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/phx2_result_10.hpp294
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/phx2_result_20.hpp614
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/phx2_result_30.hpp934
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/phx2_result_40.hpp1254
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/detail/preprocessed/phx2_result_50.hpp1574
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/domain.hpp47
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/environment.hpp454
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/expression.hpp130
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/function_equal.hpp174
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/is_actor.hpp46
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/is_nullary.hpp177
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/limits.hpp100
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/meta_grammar.hpp156
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/nothing.hpp61
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/actor.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/actor_10.hpp16
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/actor_20.hpp16
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/actor_30.hpp16
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/actor_40.hpp16
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/actor_50.hpp16
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/argument.hpp45
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/argument_no_predefined_10.hpp18
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/argument_predefined_10.hpp22
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/expression.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/expression_10.hpp445
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/expression_20.hpp865
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/expression_30.hpp1285
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/expression_40.hpp1705
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/expression_50.hpp2125
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/function_equal.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/function_equal_10.hpp1
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/function_equal_20.hpp1
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/function_equal_30.hpp1
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/function_equal_40.hpp1
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/preprocessed/function_equal_50.hpp1
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/reference.hpp148
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/terminal.hpp137
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/terminal_fwd.hpp27
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/v2_eval.hpp51
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/value.hpp112
-rw-r--r--3rdParty/Boost/src/boost/phoenix/core/visit_each.hpp49
-rw-r--r--3rdParty/Boost/src/boost/phoenix/function.hpp15
-rw-r--r--3rdParty/Boost/src/boost/phoenix/function/adapt_callable.hpp58
-rw-r--r--3rdParty/Boost/src/boost/phoenix/function/adapt_function.hpp99
-rw-r--r--3rdParty/Boost/src/boost/phoenix/function/detail/function_operator.hpp58
-rw-r--r--3rdParty/Boost/src/boost/phoenix/function/detail/preprocessed/function_operator.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/function/detail/preprocessed/function_operator_10.hpp177
-rw-r--r--3rdParty/Boost/src/boost/phoenix/function/detail/preprocessed/function_operator_20.hpp347
-rw-r--r--3rdParty/Boost/src/boost/phoenix/function/detail/preprocessed/function_operator_30.hpp517
-rw-r--r--3rdParty/Boost/src/boost/phoenix/function/detail/preprocessed/function_operator_40.hpp687
-rw-r--r--3rdParty/Boost/src/boost/phoenix/function/detail/preprocessed/function_operator_50.hpp857
-rw-r--r--3rdParty/Boost/src/boost/phoenix/function/function.hpp57
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator.hpp22
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/arithmetic.hpp54
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/bitwise.hpp49
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/comparison.hpp35
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/detail/define_operator.hpp123
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/detail/mem_fun_ptr_eval_result_of.hpp56
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp117
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_10.hpp238
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_20.hpp448
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_30.hpp658
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_40.hpp868
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_50.hpp1078
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/detail/undef_operator.hpp17
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/if_else.hpp50
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/io.hpp94
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/logical.hpp33
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/member.hpp142
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/preprocessed/member.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/preprocessed/member_10.hpp494
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/preprocessed/member_20.hpp994
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/preprocessed/member_30.hpp1494
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/preprocessed/member_40.hpp1994
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/preprocessed/member_50.hpp2494
-rw-r--r--3rdParty/Boost/src/boost/phoenix/operator/self.hpp32
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope.hpp17
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/detail/local_gen.hpp66
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/detail/local_variable.hpp232
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/lambda.hpp393
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/let.hpp204
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/local_variable.hpp195
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_10.hpp569
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_20.hpp829
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_30.hpp1089
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_40.hpp1349
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_50.hpp1609
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/scoped_environment.hpp178
-rw-r--r--3rdParty/Boost/src/boost/phoenix/statement/sequence.hpp44
-rw-r--r--3rdParty/Boost/src/boost/phoenix/support/detail/iterate_define.hpp155
-rw-r--r--3rdParty/Boost/src/boost/phoenix/support/iterate.hpp20
-rw-r--r--3rdParty/Boost/src/boost/phoenix/support/preprocessed/vector.hpp25
-rw-r--r--3rdParty/Boost/src/boost/phoenix/support/preprocessed/vector_10.hpp357
-rw-r--r--3rdParty/Boost/src/boost/phoenix/support/preprocessed/vector_20.hpp667
-rw-r--r--3rdParty/Boost/src/boost/phoenix/support/preprocessed/vector_30.hpp977
-rw-r--r--3rdParty/Boost/src/boost/phoenix/support/preprocessed/vector_40.hpp1287
-rw-r--r--3rdParty/Boost/src/boost/phoenix/support/preprocessed/vector_50.hpp1597
-rw-r--r--3rdParty/Boost/src/boost/phoenix/support/preprocessor/round.hpp71
-rw-r--r--3rdParty/Boost/src/boost/phoenix/support/vector.hpp134
-rw-r--r--3rdParty/Boost/src/boost/phoenix/version.hpp18
-rw-r--r--3rdParty/Boost/src/boost/preprocessor/comparison/equal.hpp34
-rw-r--r--3rdParty/Boost/src/boost/preprocessor/comparison/greater.hpp38
-rw-r--r--3rdParty/Boost/src/boost/preprocessor/comparison/less.hpp46
-rw-r--r--3rdParty/Boost/src/boost/preprocessor/comparison/not_equal.hpp814
-rw-r--r--3rdParty/Boost/src/boost/preprocessor/expand.hpp17
-rw-r--r--3rdParty/Boost/src/boost/preprocessor/facilities/expand.hpp28
-rw-r--r--3rdParty/Boost/src/boost/preprocessor/repetition/enum_trailing_binary_params.hpp53
-rw-r--r--3rdParty/Boost/src/boost/preprocessor/selection/max.hpp39
-rw-r--r--3rdParty/Boost/src/boost/preprocessor/seq/for_each.hpp60
-rw-r--r--3rdParty/Boost/src/boost/preprocessor/seq/for_each_product.hpp126
-rw-r--r--3rdParty/Boost/src/boost/preprocessor/seq/pop_back.hpp29
-rw-r--r--3rdParty/Boost/src/boost/preprocessor/seq/push_back.hpp19
-rw-r--r--3rdParty/Boost/src/boost/preprocessor/seq/push_front.hpp19
-rw-r--r--3rdParty/Boost/src/boost/preprocessor/seq/reverse.hpp39
-rw-r--r--3rdParty/Boost/src/boost/preprocessor/seq/to_tuple.hpp27
-rw-r--r--3rdParty/Boost/src/boost/proto/args.hpp132
-rw-r--r--3rdParty/Boost/src/boost/proto/context.hpp16
-rw-r--r--3rdParty/Boost/src/boost/proto/context/callable.hpp229
-rw-r--r--3rdParty/Boost/src/boost/proto/context/default.hpp409
-rw-r--r--3rdParty/Boost/src/boost/proto/context/detail/callable_eval.hpp113
-rw-r--r--3rdParty/Boost/src/boost/proto/context/detail/default_eval.hpp82
-rw-r--r--3rdParty/Boost/src/boost/proto/context/detail/null_eval.hpp54
-rw-r--r--3rdParty/Boost/src/boost/proto/context/detail/preprocessed/callable_eval.hpp597
-rw-r--r--3rdParty/Boost/src/boost/proto/context/detail/preprocessed/default_eval.hpp279
-rw-r--r--3rdParty/Boost/src/boost/proto/context/detail/preprocessed/null_eval.hpp97
-rw-r--r--3rdParty/Boost/src/boost/proto/context/null.hpp56
-rw-r--r--3rdParty/Boost/src/boost/proto/core.hpp30
-rw-r--r--3rdParty/Boost/src/boost/proto/debug.hpp267
-rw-r--r--3rdParty/Boost/src/boost/proto/deep_copy.hpp163
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/and_n.hpp94
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/any.hpp85
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/args.hpp85
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/as_expr.hpp187
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/as_lvalue.hpp43
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/basic_expr.hpp185
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/class_member_traits.hpp51
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/decltype.hpp453
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/deduce_domain.hpp200
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/deduce_domain_n.hpp64
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/deep_copy.hpp79
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/deprecated.hpp247
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/expr.hpp474
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/expr_funop.hpp45
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/extends_funop.hpp43
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/extends_funop_const.hpp42
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/funop.hpp87
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/generate_by_value.hpp93
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/ignore_unused.hpp34
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/is_noncopyable.hpp65
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/lambda_matches.hpp61
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/local.hpp52
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/make_expr.hpp75
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/make_expr_.hpp105
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/make_expr_funop.hpp67
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/matches_.hpp96
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/memfun_funop.hpp45
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/or_n.hpp59
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/poly_function.hpp234
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/poly_function_funop.hpp74
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/poly_function_traits.hpp65
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/and_n.hpp310
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/args.hpp162
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/basic_expr.hpp809
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/class_member_traits.hpp139
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/deduce_domain_n.hpp119
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/deep_copy.hpp237
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/expr.hpp3742
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/expr_variadic.hpp2208
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/extends_funop.hpp18
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/extends_funop_const.hpp18
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/funop.hpp367
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/generate_by_value.hpp487
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/lambda_matches.hpp142
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/make_expr.hpp331
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/make_expr_.hpp331
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/make_expr_funop.hpp259
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/matches_.hpp277
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/memfun_funop.hpp77
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/or_n.hpp123
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/poly_function_funop.hpp237
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/poly_function_traits.hpp247
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/template_arity_helper.hpp67
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/traits.hpp1486
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/unpack_expr_.hpp466
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/preprocessed/vararg_matches_impl.hpp178
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/remove_typename.hpp82
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/static_const.hpp27
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/template_arity.hpp67
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/template_arity_helper.hpp44
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/traits.hpp221
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/unpack_expr_.hpp198
-rw-r--r--3rdParty/Boost/src/boost/proto/detail/vararg_matches_impl.hpp58
-rw-r--r--3rdParty/Boost/src/boost/proto/domain.hpp337
-rw-r--r--3rdParty/Boost/src/boost/proto/eval.hpp140
-rw-r--r--3rdParty/Boost/src/boost/proto/expr.hpp163
-rw-r--r--3rdParty/Boost/src/boost/proto/extends.hpp647
-rw-r--r--3rdParty/Boost/src/boost/proto/functional.hpp16
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/fusion.hpp19
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/fusion/at.hpp56
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/fusion/pop_back.hpp60
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/fusion/pop_front.hpp65
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/fusion/push_back.hpp49
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/fusion/push_front.hpp49
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/fusion/reverse.hpp60
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/range.hpp19
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/range/begin.hpp51
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/range/empty.hpp34
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/range/end.hpp51
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/range/rbegin.hpp51
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/range/rend.hpp51
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/range/size.hpp45
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/std.hpp15
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/std/iterator.hpp158
-rw-r--r--3rdParty/Boost/src/boost/proto/functional/std/utility.hpp137
-rw-r--r--3rdParty/Boost/src/boost/proto/fusion.hpp720
-rw-r--r--3rdParty/Boost/src/boost/proto/generate.hpp470
-rw-r--r--3rdParty/Boost/src/boost/proto/literal.hpp112
-rw-r--r--3rdParty/Boost/src/boost/proto/make_expr.hpp509
-rw-r--r--3rdParty/Boost/src/boost/proto/matches.hpp947
-rw-r--r--3rdParty/Boost/src/boost/proto/operators.hpp378
-rw-r--r--3rdParty/Boost/src/boost/proto/proto.hpp18
-rw-r--r--3rdParty/Boost/src/boost/proto/proto_fwd.hpp886
-rw-r--r--3rdParty/Boost/src/boost/proto/repeat.hpp310
-rw-r--r--3rdParty/Boost/src/boost/proto/tags.hpp157
-rw-r--r--3rdParty/Boost/src/boost/proto/traits.hpp1258
-rw-r--r--3rdParty/Boost/src/boost/proto/transform.hpp24
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/arg.hpp359
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/call.hpp401
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/default.hpp598
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/call.hpp110
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/construct_funop.hpp44
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/construct_pod_funop.hpp45
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/default_function_impl.hpp97
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/expand_pack.hpp46
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/fold_impl.hpp143
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/lazy.hpp79
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/make.hpp202
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/make_gcc_workaround.hpp100
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/pack.hpp97
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/pack_impl.hpp72
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/pass_through_impl.hpp104
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/preprocessed/call.hpp424
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/preprocessed/construct_funop.hpp67
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/preprocessed/construct_pod_funop.hpp77
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/preprocessed/default_function_impl.hpp392
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/preprocessed/expand_pack.hpp73
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/preprocessed/fold_impl.hpp387
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/preprocessed/lazy.hpp407
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/preprocessed/make.hpp1320
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/preprocessed/make_gcc_workaround.hpp481
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/preprocessed/pack_impl.hpp442
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/preprocessed/pass_through_impl.hpp419
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/preprocessed/when.hpp637
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/detail/when.hpp101
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/env.hpp515
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/fold.hpp250
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/fold_tree.hpp182
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/impl.hpp352
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/integral_c.hpp111
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/lazy.hpp59
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/make.hpp284
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/pass_through.hpp145
-rw-r--r--3rdParty/Boost/src/boost/proto/transform/when.hpp267
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex.hpp18
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/argument.hpp362
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/argument_phoenix.hpp251
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/detail/sequence_function.hpp63
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/domain.hpp31
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer.hpp21
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/action.hpp97
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/char_token_def.hpp242
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexer.hpp405
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/functor.hpp300
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/functor_data.hpp552
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/iterator.hpp121
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/iterator_tokenizer.hpp255
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/lexer.hpp399
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/semantic_action_data.hpp121
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/token.hpp654
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/wrap_action.hpp154
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/pass_flags.hpp28
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/sequence.hpp72
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/string_token_def.hpp178
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/support_functions.hpp205
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/support_functions_expression.hpp135
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/terminals.hpp23
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer/token_def.hpp246
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer_lexertl.hpp18
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/lexer_type.hpp100
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/meta_compiler.hpp104
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/qi.hpp20
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/qi/in_state.hpp32
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/qi/plain_raw_token.hpp149
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/qi/plain_token.hpp242
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/qi/plain_tokenid.hpp242
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/qi/plain_tokenid_mask.hpp138
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/qi/state_switcher.hpp270
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/reference.hpp85
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/tokenize_and_parse.hpp325
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/lex/tokenize_and_parse_attr.hpp114
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/bind.hpp16
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/bind/bind_function.hpp58
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/bind/bind_function_object.hpp40
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/bind/bind_member_function.hpp77
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/bind/bind_member_variable.hpp105
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/bind/detail/bind_function.hpp53
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/bind/detail/bind_function_object.hpp43
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/bind/detail/bind_member_function.hpp132
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/bind/detail/function_ptr.hpp99
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/bind/detail/member_function_ptr.hpp119
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core.hpp23
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/actor.hpp194
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/argument.hpp99
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/as_actor.hpp62
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/basic_environment.hpp81
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/compose.hpp118
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/composite.hpp96
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/detail/actor.hpp65
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/detail/basic_environment.hpp38
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/detail/compose.hpp47
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/detail/composite.hpp36
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/detail/composite_eval.hpp106
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/detail/function_eval.hpp142
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/is_actor.hpp29
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/limits.hpp79
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/nothing.hpp42
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/reference.hpp80
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/core/value.hpp158
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/detail/local_reference.hpp44
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/detail/type_deduction.hpp497
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/function.hpp13
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/function/detail/function_call.hpp42
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/function/function.hpp48
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator.hpp20
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/arithmetic.hpp115
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/bitwise.hpp91
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/comparison.hpp55
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/detail/binary_compose.hpp32
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/detail/binary_eval.hpp44
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/detail/io.hpp78
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/detail/mem_fun_ptr_eval.hpp76
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/detail/mem_fun_ptr_gen.hpp69
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/detail/mem_fun_ptr_return.hpp65
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/detail/unary_compose.hpp18
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/detail/unary_eval.hpp40
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/if_else.hpp78
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/io.hpp86
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/logical.hpp43
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/member.hpp145
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/operator/self.hpp75
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/scope.hpp16
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/scope/detail/local_gen.hpp57
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/scope/detail/local_variable.hpp198
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/scope/lambda.hpp176
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/scope/let.hpp145
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/scope/local_variable.hpp111
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/scope/scoped_environment.hpp47
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/phoenix/version.hpp18
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/detail/assign_to.hpp392
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/detail/attributes.hpp176
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/detail/construct.hpp202
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/detail/parse.hpp97
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/detail/unused_skipper.hpp50
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/domain.hpp74
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/meta_compiler.hpp177
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/nonterminal/detail/fcall.hpp53
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/nonterminal/detail/parameterized.hpp75
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp87
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/nonterminal/grammar.hpp132
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/nonterminal/nonterminal_fwd.hpp31
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/nonterminal/rule.hpp439
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/parse.hpp215
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/parser.hpp140
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/reference.hpp69
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/skip_flag.hpp29
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/qi/skip_over.hpp44
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/argument.hpp217
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/assert_msg.hpp31
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/attributes.hpp1358
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/attributes_fwd.hpp297
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_class.hpp797
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/ascii.hpp313
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/iso8859_1.hpp711
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard.hpp137
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard_wide.hpp182
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode.hpp339
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode/category_table.hpp2216
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode/lowercase_table.hpp620
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode/query.hpp305
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode/script_table.hpp2159
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode/uppercase_table.hpp639
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/common_terminals.hpp437
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/container.hpp575
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/context.hpp299
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/as_variant.hpp104
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/hold_any.hpp459
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/is_spirit_tag.hpp20
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/char_traits.hpp54
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/consts.hpp39
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/containers/ptr_list.hpp71
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/containers/ptr_vector.hpp108
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/conversion/char_state_machine.hpp77
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/debug.hpp285
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/generator.hpp858
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/internals.hpp60
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/parser/parser.hpp511
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/parser/tokeniser/num_token.hpp146
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/parser/tokeniser/re_tokeniser.hpp574
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/parser/tokeniser/re_tokeniser_helper.hpp549
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/parser/tokeniser/re_tokeniser_state.hpp98
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/parser/tree/end_node.hpp90
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/parser/tree/iteration_node.hpp90
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/parser/tree/leaf_node.hpp107
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/parser/tree/node.hpp188
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/parser/tree/selection_node.hpp94
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/parser/tree/sequence_node.hpp112
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/partition/charset.hpp81
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/partition/equivset.hpp140
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/rules.hpp806
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/runtime_error.hpp26
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/size_t.hpp21
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/state_machine.hpp439
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/string_token.hpp413
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/make_cons.hpp86
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/make_vector.hpp114
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/scoped_enum_emulation.hpp28
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/handles_container.hpp55
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/has_semantic_action.hpp47
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/info.hpp159
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/buf_id_check_policy.hpp90
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/combine_policies.hpp558
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/multi_pass.hpp132
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/no_check_policy.hpp31
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/ref_counted_policy.hpp79
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/split_functor_input_policy.hpp201
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/split_std_deque_policy.hpp170
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/iterators/multi_pass.hpp252
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/iterators/multi_pass_fwd.hpp91
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/limits.hpp35
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/make_component.hpp474
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/meta_compiler.hpp320
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/modify.hpp124
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/multi_pass_wrapper.hpp52
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/nonterminal/expand_arg.hpp88
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/nonterminal/extract_param.hpp123
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/nonterminal/locals.hpp54
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/string_traits.hpp358
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/terminal.hpp655
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/terminal_expression.hpp75
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/unused.hpp105
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/utf8.hpp72
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/utree/utree_traits_fwd.hpp24
-rw-r--r--3rdParty/Boost/src/boost/spirit/include/lex_lexertl.hpp18
-rw-r--r--3rdParty/Boost/src/boost/spirit/include/phoenix_bind.hpp18
-rw-r--r--3rdParty/Boost/src/boost/spirit/include/phoenix_core.hpp19
-rw-r--r--3rdParty/Boost/src/boost/spirit/include/phoenix_function.hpp18
-rw-r--r--3rdParty/Boost/src/boost/spirit/include/phoenix_limits.hpp16
-rw-r--r--3rdParty/Boost/src/boost/spirit/include/phoenix_operator.hpp18
-rw-r--r--3rdParty/Boost/src/boost/spirit/include/phoenix_scope.hpp18
-rw-r--r--3rdParty/Boost/src/boost/utility/value_init.hpp258
1064 files changed, 231554 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/function_types/components.hpp b/3rdParty/Boost/src/boost/function_types/components.hpp
new file mode 100644
index 0000000..53d81b6
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/components.hpp
@@ -0,0 +1,431 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+#ifndef BOOST_FT_COMPONENTS_HPP_INCLUDED
+#define BOOST_FT_COMPONENTS_HPP_INCLUDED
+
+#include <cstddef>
+
+#include <boost/config.hpp>
+
+#include <boost/detail/workaround.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/type_traits/detail/template_arity_spec.hpp>
+
+#include <boost/type_traits/integral_constant.hpp>
+
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/integral_c.hpp>
+#include <boost/mpl/vector/vector0.hpp>
+
+#if BOOST_WORKAROUND(__BORLANDC__, <= 0x565)
+# include <boost/type_traits/remove_cv.hpp>
+
+# include <boost/mpl/identity.hpp>
+# include <boost/mpl/bitand.hpp>
+# include <boost/mpl/vector/vector10.hpp>
+# include <boost/mpl/front.hpp>
+# include <boost/mpl/begin.hpp>
+# include <boost/mpl/advance.hpp>
+# include <boost/mpl/iterator_range.hpp>
+# include <boost/mpl/joint_view.hpp>
+# include <boost/mpl/equal_to.hpp>
+# include <boost/mpl/copy.hpp>
+# include <boost/mpl/front_inserter.hpp>
+
+# include <boost/function_types/detail/classifier.hpp>
+#endif
+
+#ifndef BOOST_FT_NO_CV_FUNC_SUPPORT
+# include <boost/mpl/remove.hpp>
+#endif
+
+#include <boost/function_types/config/config.hpp>
+
+#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+# if BOOST_FT_MAX_ARITY < 10
+# include <boost/mpl/vector/vector10.hpp>
+# elif BOOST_FT_MAX_ARITY < 20
+# include <boost/mpl/vector/vector20.hpp>
+# elif BOOST_FT_MAX_ARITY < 30
+# include <boost/mpl/vector/vector30.hpp>
+# elif BOOST_FT_MAX_ARITY < 40
+# include <boost/mpl/vector/vector40.hpp>
+# elif BOOST_FT_MAX_ARITY < 50
+# include <boost/mpl/vector/vector50.hpp>
+# endif
+#else
+# include <boost/function_types/detail/classifier.hpp>
+#endif
+
+#include <boost/function_types/detail/class_transform.hpp>
+#include <boost/function_types/property_tags.hpp>
+
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+namespace boost
+{
+ namespace function_types
+ {
+
+ using mpl::placeholders::_;
+
+ template< typename T, typename ClassTypeTransform = add_reference<_> >
+ struct components;
+
+ namespace detail
+ {
+ template<typename T, typename L> struct components_impl;
+#if BOOST_WORKAROUND(__BORLANDC__, <= 0x565)
+ template<typename T, typename OrigT, typename L> struct components_bcc;
+#endif
+ }
+
+ template<typename T, typename ClassTypeTransform>
+ struct components
+#if !BOOST_WORKAROUND(__BORLANDC__, <= 0x565)
+ : detail::components_impl<T, ClassTypeTransform>
+#else
+ : detail::components_bcc<typename remove_cv<T>::type,T,
+ ClassTypeTransform>
+#endif
+ {
+ typedef components<T,ClassTypeTransform> type;
+
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(2,components,(T,ClassTypeTransform))
+ };
+
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+ namespace detail {
+
+ struct components_mpl_sequence_tag;
+
+ struct components_non_func_base
+ {
+ typedef mpl::vector0<> types;
+ typedef void function_arity;
+
+ typedef detail::constant<0> bits;
+ typedef detail::constant<0> mask;
+
+ typedef components_mpl_sequence_tag tag;
+ };
+
+ template
+ < typename Components
+ , typename IfTagged
+ , typename ThenTag
+ , typename DefaultBase = components_non_func_base
+ >
+ struct retagged_if
+ : mpl::if_
+ < detail::represents_impl<Components, IfTagged>
+ , detail::changed_tag<Components,IfTagged,ThenTag>
+ , DefaultBase
+ >::type
+ { };
+
+ // We detect plain function types and function references as function
+ // pointers by recursive instantiation of components_impl.
+ // The third specialization of components_impl makes sure the recursion
+ // terminates (when adding pointers).
+ template<typename T, typename L>
+ struct components_impl
+ : detail::retagged_if
+ < detail::components_impl<T*,L>
+ , pointer_tag, /* --> */ function_tag >
+ { };
+ template<typename T, typename L>
+ struct components_impl<T&, L>
+ : detail::retagged_if
+ < detail::components_impl<T*,L>
+ , pointer_tag, /* --> */ reference_tag >
+ { };
+
+#if !BOOST_FT_NO_CV_FUNC_SUPPORT
+ // Retry the type with a member pointer attached to detect cv functions
+ class a_class;
+
+ template<typename Base, typename T, typename L>
+ struct cv_func_base
+ : detail::retagged_if<Base,member_pointer_tag,function_tag>
+ {
+ typedef typename
+ mpl::remove
+ < typename Base::types
+ , typename detail::class_transform<a_class,L>::type>::type
+ types;
+ };
+
+ template<typename T, typename L>
+ struct components_impl<T*, L>
+ : mpl::if_
+ < detail::represents_impl< detail::components_impl<T a_class::*, L>
+ , member_pointer_tag >
+ , detail::cv_func_base< detail::components_impl<T a_class::*, L>, T, L>
+ , components_non_func_base
+ >::type
+ { };
+
+ template<typename T, typename L>
+ struct components_impl<T a_class::*, L>
+ : components_non_func_base
+ { };
+#else
+ template<typename T, typename L>
+ struct components_impl<T*, L>
+ : components_non_func_base
+ { };
+#endif
+
+ template<typename T, typename L>
+ struct components_impl<T* const, L>
+ : components_impl<T*,L>
+ { };
+
+ template<typename T, typename L>
+ struct components_impl<T* volatile, L>
+ : components_impl<T*,L>
+ { };
+
+ template<typename T, typename L>
+ struct components_impl<T* const volatile, L>
+ : components_impl<T*,L>
+ { };
+
+ template<typename T, typename L>
+ struct components_impl<T const, L>
+ : components_impl<T,L>
+ { };
+
+ template<typename T, typename L>
+ struct components_impl<T volatile, L>
+ : components_impl<T,L>
+ { };
+
+ template<typename T, typename L>
+ struct components_impl<T const volatile, L>
+ : components_impl<T,L>
+ { };
+
+
+ template<typename T, class C>
+ struct member_obj_ptr_result
+ { typedef T & type; };
+
+ template<typename T, class C>
+ struct member_obj_ptr_result<T, C const>
+ { typedef T const & type; };
+
+ template<typename T, class C>
+ struct member_obj_ptr_result<T, C volatile>
+ { typedef T volatile & type; };
+
+ template<typename T, class C>
+ struct member_obj_ptr_result<T, C const volatile>
+ { typedef T const volatile & type; };
+
+ template<typename T, class C>
+ struct member_obj_ptr_result<T &, C>
+ { typedef T & type; };
+
+ template<typename T, class C>
+ struct member_obj_ptr_result<T &, C const>
+ { typedef T & type; };
+
+ template<typename T, class C>
+ struct member_obj_ptr_result<T &, C volatile>
+ { typedef T & type; };
+
+ template<typename T, class C>
+ struct member_obj_ptr_result<T &, C const volatile>
+ { typedef T & type; };
+
+ template<typename T, class C, typename L>
+ struct member_obj_ptr_components
+ : member_object_pointer_base
+ {
+ typedef function_types::components<T C::*, L> type;
+ typedef components_mpl_sequence_tag tag;
+
+ typedef mpl::integral_c<std::size_t,1> function_arity;
+
+ typedef mpl::vector2< typename detail::member_obj_ptr_result<T,C>::type,
+ typename detail::class_transform<C,L>::type > types;
+ };
+
+#if !BOOST_WORKAROUND(__BORLANDC__, <= 0x565)
+# define BOOST_FT_variations BOOST_FT_pointer|BOOST_FT_member_pointer
+
+ template<typename T, class C, typename L>
+ struct components_impl<T C::*, L>
+ : member_obj_ptr_components<T,C,L>
+ { };
+
+#else
+# define BOOST_FT_variations BOOST_FT_pointer
+
+ // This workaround removes the member pointer from the type to allow
+ // detection of member function pointers with BCC.
+ template<typename T, typename C, typename L>
+ struct components_impl<T C::*, L>
+ : detail::retagged_if
+ < detail::components_impl<typename boost::remove_cv<T>::type *, L>
+ , pointer_tag, /* --> */ member_function_pointer_tag
+ , member_obj_ptr_components<T,C,L> >
+ { };
+
+ // BCC lets us test the cv-qualification of a function type by template
+ // partial specialization - so we use this bug feature to find out the
+ // member function's cv-qualification (unfortunately there are some
+ // invisible modifiers that impose some limitations on these types even if
+ // we remove the qualifiers, So we cannot exploit the same bug to make the
+ // library work for cv-qualified function types).
+ template<typename T> struct encode_cv
+ { typedef char (& type)[1]; BOOST_STATIC_CONSTANT(std::size_t, value = 1); };
+ template<typename T> struct encode_cv<T const *>
+ { typedef char (& type)[2]; BOOST_STATIC_CONSTANT(std::size_t, value = 2); };
+ template<typename T> struct encode_cv<T volatile *>
+ { typedef char (& type)[3]; BOOST_STATIC_CONSTANT(std::size_t, value = 3); };
+ template<typename T> struct encode_cv<T const volatile *>
+ { typedef char (& type)[4]; BOOST_STATIC_CONSTANT(std::size_t, value = 4); };
+
+ // For member function pointers we have to use a function template (partial
+ // template specialization for a member pointer drops the cv qualification
+ // of the function type).
+ template<typename T, typename C>
+ typename encode_cv<T *>::type mfp_cv_tester(T C::*);
+
+ template<typename T> struct encode_mfp_cv
+ {
+ BOOST_STATIC_CONSTANT(std::size_t, value =
+ sizeof(detail::mfp_cv_tester((T)0L)));
+ };
+
+ // Associate bits with the CV codes above.
+ template<std::size_t> struct cv_tag_mfp_impl;
+
+ template<typename T> struct cv_tag_mfp
+ : detail::cv_tag_mfp_impl
+ < ::boost::function_types::detail::encode_mfp_cv<T>::value >
+ { };
+
+ template<> struct cv_tag_mfp_impl<1> : non_cv { };
+ template<> struct cv_tag_mfp_impl<2> : const_non_volatile { };
+ template<> struct cv_tag_mfp_impl<3> : volatile_non_const { };
+ template<> struct cv_tag_mfp_impl<4> : cv_qualified { };
+
+ // Metafunction to decode the cv code and apply it to a type.
+ // We add a pointer, because otherwise cv-qualifiers won't stick (another bug).
+ template<typename T, std::size_t CV> struct decode_cv;
+
+ template<typename T> struct decode_cv<T,1> : mpl::identity<T *> {};
+ template<typename T> struct decode_cv<T,2> : mpl::identity<T const *> {};
+ template<typename T> struct decode_cv<T,3> : mpl::identity<T volatile *> {};
+ template<typename T> struct decode_cv<T,4>
+ : mpl::identity<T const volatile *> {};
+
+ // The class type transformation comes after adding cv-qualifiers. We have
+ // wrap it to remove the pointer added in decode_cv_impl.
+ template<typename T, typename L> struct bcc_class_transform_impl;
+ template<typename T, typename L> struct bcc_class_transform_impl<T *, L>
+ : class_transform<T,L>
+ { };
+
+ template<typename T, typename D, typename L> struct bcc_class_transform
+ : bcc_class_transform_impl
+ < typename decode_cv
+ < T
+ , ::boost::function_types::detail::encode_mfp_cv<D>::value
+ >::type
+ , L
+ >
+ { };
+
+ // After extracting the member pointee from the type the class type is still
+ // in the type (somewhere -- you won't see with RTTI, that is) and that type
+ // is flagged unusable and *not* identical to the nonmember function type.
+ // We can, however, decompose this type via components_impl but surprisingly
+ // a pointer to the const qualified class type pops up again as the first
+ // parameter type.
+ // We have to replace this type with the properly cv-qualified and
+ // transformed class type, integrate the cv qualification into the bits.
+ template<typename Base, typename MFP, typename OrigT, typename L>
+ struct mfp_components;
+
+
+ template<typename Base, typename T, typename C, typename OrigT, typename L>
+ struct mfp_components<Base,T C::*,OrigT,L>
+ {
+ private:
+ typedef typename mpl::front<typename Base::types>::type result_type;
+ typedef typename detail::bcc_class_transform<C,OrigT,L>::type class_type;
+
+ typedef mpl::vector2<result_type, class_type> result_and_class_type;
+
+ typedef typename
+ mpl::advance
+ < typename mpl::begin<typename Base::types>::type
+ , typename mpl::if_
+ < mpl::equal_to< typename detail::classifier<OrigT>::function_arity
+ , typename Base::function_arity >
+ , mpl::integral_c<int,2> , mpl::integral_c<int,1>
+ >::type
+ >::type
+ from;
+ typedef typename mpl::end<typename Base::types>::type to;
+
+ typedef mpl::iterator_range<from,to> param_types;
+
+ typedef mpl::joint_view< result_and_class_type, param_types> types_view;
+ public:
+
+ typedef typename
+ mpl::reverse_copy<types_view, mpl::front_inserter< mpl::vector0<> > >::type
+ types;
+
+ typedef typename
+ function_types::tag< Base, detail::cv_tag_mfp<OrigT> >::bits
+ bits;
+
+ typedef typename Base::mask mask;
+
+ typedef typename detail::classifier<OrigT>::function_arity function_arity;
+
+ typedef components_mpl_sequence_tag tag;
+ };
+
+ // Now put it all together: detect cv-qualification of function types and do
+ // the weird transformations above for member function pointers.
+ template<typename T, typename OrigT, typename L>
+ struct components_bcc
+ : mpl::if_
+ < detail::represents_impl< detail::components_impl<T,L>
+ , member_function_pointer_tag>
+ , detail::mfp_components<detail::components_impl<T,L>,T,OrigT,L>
+ , detail::components_impl<T,L>
+ >::type
+ { };
+
+#endif // end of BORLAND WORKAROUND
+
+#define BOOST_FT_al_path boost/function_types/detail/components_impl
+#include <boost/function_types/detail/pp_loop.hpp>
+
+ } } // namespace function_types::detail
+
+ BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::components)
+
+} // namespace ::boost
+
+#include <boost/function_types/detail/components_as_mpl_sequence.hpp>
+#include <boost/function_types/detail/retag_default_cc.hpp>
+
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/config/cc_names.hpp b/3rdParty/Boost/src/boost/function_types/config/cc_names.hpp
new file mode 100644
index 0000000..ab69d64
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/config/cc_names.hpp
@@ -0,0 +1,31 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+#ifndef BOOST_FT_CONFIG_CC_NAMES_HPP_INCLUDED
+#define BOOST_FT_CONFIG_CC_NAMES_HPP_INCLUDED
+
+#define BOOST_FT_BUILTIN_CC_NAMES \
+ (( IMPLICIT , implicit_cc , BOOST_PP_EMPTY ))\
+ (( CDECL , cdecl_cc , BOOST_PP_IDENTITY(__cdecl ) ))\
+ (( STDCALL , stdcall_cc , BOOST_PP_IDENTITY(__stdcall ) ))\
+ (( PASCAL , pascal_cc , BOOST_PP_IDENTITY(pascal ) ))\
+ (( FASTCALL , fastcall_cc , BOOST_PP_IDENTITY(__fastcall) ))\
+ (( CLRCALL , clrcall_cc , BOOST_PP_IDENTITY(__clrcall ) ))\
+ (( THISCALL , thiscall_cc , BOOST_PP_IDENTITY(__thiscall) ))\
+ (( IMPLICIT_THISCALL , thiscall_cc , BOOST_PP_EMPTY ))
+
+// append user-defined cc names to builtin ones
+#ifdef BOOST_FT_CC_NAMES
+# define BOOST_FT_CC_NAMES_SEQ BOOST_FT_BUILTIN_CC_NAMES BOOST_FT_CC_NAMES
+# define BOOST_FT_CC_PREPROCESSING 1
+#else
+# define BOOST_FT_CC_NAMES_SEQ BOOST_FT_BUILTIN_CC_NAMES
+#endif
+
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/config/compiler.hpp b/3rdParty/Boost/src/boost/function_types/config/compiler.hpp
new file mode 100644
index 0000000..151c856
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/config/compiler.hpp
@@ -0,0 +1,116 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+#ifndef BOOST_FT_CONFIG_COMPILER_HPP_INCLUDED
+#define BOOST_FT_CONFIG_COMPILER_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/detail/workaround.hpp>
+
+#if defined(BOOST_MSVC)
+
+# if BOOST_MSVC < 1310
+# error "unsupported compiler version"
+# endif
+
+# ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
+
+ // enable clrcall calling covention (call to .NET managed code) when
+ // compiling with /clr
+# if BOOST_MSVC >= 1400 && defined(__cplusplus_cli)
+# ifndef BOOST_FT_CC_CLRCALL
+# define BOOST_FT_CC_CLRCALL callable_builtin
+# endif
+# endif
+
+ // Intel x86 architecture specific calling conventions
+# ifdef _M_IX86
+# define BOOST_FT_COMMON_X86_CCs callable_builtin
+# if BOOST_MSVC < 1400
+ // version 7.1 is missing a keyword to specify the thiscall cc ...
+# ifndef BOOST_FT_CC_IMPLICIT_THISCALL
+# define BOOST_FT_CC_IMPLICIT_THISCALL non_variadic|member|callable_builtin
+# ifndef BOOST_FT_CONFIG_OK
+# pragma message("INFO| /Gd /Gr /Gz will compiler options will cause")
+# pragma message("INFO| a compile error.")
+# pragma message("INFO| Reconfigure Boost.FunctionTypes in this case.")
+# pragma message("INFO| This message can be suppressed by defining")
+# pragma message("INFO| BOOST_FT_CONFIG_OK.")
+# endif
+# endif
+# else
+ // ...introduced in version 8
+# ifndef BOOST_FT_CC_THISCALL
+# define BOOST_FT_CC_THISCALL non_variadic|member|callable_builtin
+# endif
+# endif
+# endif
+# endif
+
+#elif defined(__GNUC__) && !defined(BOOST_INTEL_LINUX)
+
+# if __GNUC__ < 3
+# error "unsupported compiler version"
+# endif
+
+# ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
+
+# if defined(__i386__)
+# // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20439
+# // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29328
+# if BOOST_WORKAROUND(__GNUC__,BOOST_TESTED_AT(4))
+# ifndef BOOST_FT_CC_IMPLICIT
+# define BOOST_FT_CC_IMPLICIT member|callable_builtin
+# endif
+# define BOOST_FT_COMMON_X86_CCs non_member|callable_builtin
+# else
+# define BOOST_FT_COMMON_X86_CCs callable_builtin
+# endif
+# else
+# ifndef BOOST_FT_CC_IMPLICIT
+# define BOOST_FT_CC_IMPLICIT callable_builtin
+# endif
+# endif
+# endif
+
+# if (defined(BOOST_FT_CC_CDECL) || defined(BOOST_FT_COMMON_X86_CCs)) \
+ && !defined(__cdecl)
+# define __cdecl __attribute__((__cdecl__))
+# endif
+# if (defined(BOOST_FT_CC_STDCALL) || defined(BOOST_FT_COMMON_X86_CCs)) \
+ && !defined(__stdcall)
+# define __stdcall __attribute__((__stdcall__))
+# endif
+# if (defined(BOOST_FT_CC_FASTCALL) || defined(BOOST_FT_COMMON_X86_CCs)) \
+ && !defined(__fastcall)
+# define __fastcall __attribute__((__fastcall__))
+# endif
+
+#elif defined(__BORLANDC__)
+
+# if __BORLANDC__ < 0x550
+# error "unsupported compiler version"
+# elif __BORLANDC__ > 0x565
+# pragma message("WARNING: library untested with this compiler version")
+# endif
+
+# ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
+# define BOOST_FT_COMMON_X86_CCs callable_builtin
+# endif
+
+ // syntactic specialities of cc specifier
+# define BOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
+ result() cc_spec() lparen() type_mod() name() rparen()
+#else
+ // only enable default calling convention
+# define BOOST_FT_CC_IMPLICIT callable_builtin
+#endif
+
+
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/config/config.hpp b/3rdParty/Boost/src/boost/function_types/config/config.hpp
new file mode 100644
index 0000000..7ec8e1e
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/config/config.hpp
@@ -0,0 +1,59 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+#ifndef BOOST_FT_CONFIG_HPP_INCLUDED
+#define BOOST_FT_CONFIG_HPP_INCLUDED
+
+#include <boost/function_types/config/compiler.hpp>
+#include <boost/function_types/config/cc_names.hpp>
+
+// maximum allowed arity
+#ifndef BOOST_FT_MAX_ARITY
+#define BOOST_FT_MAX_ARITY 20
+#endif
+
+// the most common calling conventions for x86 architecture can be enabled at
+// once in the compiler config
+#ifdef BOOST_FT_COMMON_X86_CCs
+# ifndef BOOST_FT_CC_CDECL
+# define BOOST_FT_CC_CDECL BOOST_FT_COMMON_X86_CCs
+# endif
+# ifndef BOOST_FT_CC_STDCALL
+# define BOOST_FT_CC_STDCALL non_variadic|BOOST_FT_COMMON_X86_CCs
+# endif
+# ifndef BOOST_FT_CC_FASTCALL
+# define BOOST_FT_CC_FASTCALL non_variadic|BOOST_FT_COMMON_X86_CCs
+# endif
+#endif
+
+// where to place the cc specifier (the common way)
+#ifndef BOOST_FT_SYNTAX
+# define BOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
+ result() lparen() cc_spec() type_mod() name() rparen()
+#endif
+
+// param for nullary functions
+// set to "void" for compilers that require nullary functions to read
+// "R (void)" in template partial specialization
+#ifndef BOOST_FT_NULLARY_PARAM
+#define BOOST_FT_NULLARY_PARAM
+#endif
+
+// there is a pending defect report on cv qualified function types, so support
+// for these types is disabled, unless for compilers where it's known to work
+#ifndef BOOST_FT_NO_CV_FUNC_SUPPORT
+#define BOOST_FT_NO_CV_FUNC_SUPPORT 1
+#endif
+
+// full preprocessing implies preprocessing of the ccs
+#if defined(BOOST_FT_PREPROCESSING_MODE) && !defined(BOOST_FT_CC_PREPROCESSING)
+# define BOOST_FT_CC_PREPROCESSING 1
+#endif
+
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/class_transform.hpp b/3rdParty/Boost/src/boost/function_types/detail/class_transform.hpp
new file mode 100644
index 0000000..ef9a225
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/class_transform.hpp
@@ -0,0 +1,62 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+#ifndef BOOST_FT_DETAIL_CLASS_TRANSFORM_HPP_INCLUDED
+#define BOOST_FT_DETAIL_CLASS_TRANSFORM_HPP_INCLUDED
+
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/always.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/placeholders.hpp>
+
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/add_pointer.hpp>
+#include <boost/type_traits/add_reference.hpp>
+
+namespace boost { namespace function_types { namespace detail {
+
+using mpl::placeholders::_;
+
+// Transformation metafunction for the class type of member function pointers.
+template<typename T, typename L>
+struct class_transform
+{ typedef typename mpl::apply1<L,T>::type type; };
+
+
+#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+// We can short-circuit the mechanism implemented in the primary template for
+// the most common lambda expression and save both the "un-lambdaing" and the
+// type traits invocation (we know that T can only be a class type).
+
+template<typename T> struct class_transform< T, mpl::identity<_> >
+{ typedef T type; };
+
+template<typename T> struct class_transform< T, add_reference<_> >
+{ typedef T & type; };
+
+template<typename T> struct class_transform< T, add_pointer<_> >
+{ typedef T * type; };
+
+template<typename T> struct class_transform< T, remove_cv<_> >
+{ typedef typename boost::remove_cv<T>::type type; };
+
+template<typename T> struct class_transform< T, add_reference< remove_cv<_> > >
+{ typedef typename boost::remove_cv<T>::type & type; };
+
+template<typename T> struct class_transform< T, add_pointer< remove_cv<_> > >
+{ typedef typename boost::remove_cv<T>::type * type; };
+
+template<typename T, typename U> struct class_transform< T, mpl::always<U> >
+{ typedef U type; };
+#endif
+
+
+} } } // namespace ::boost::function_types::detail
+
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/classifier.hpp b/3rdParty/Boost/src/boost/function_types/detail/classifier.hpp
new file mode 100644
index 0000000..03f3419
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/classifier.hpp
@@ -0,0 +1,82 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+#ifndef BOOST_FT_DETAIL_CLASSIFIER_HPP_INCLUDED
+#define BOOST_FT_DETAIL_CLASSIFIER_HPP_INCLUDED
+
+#include <boost/type.hpp>
+#include <boost/config.hpp>
+#include <boost/type_traits/config.hpp>
+#include <boost/type_traits/is_reference.hpp>
+#include <boost/type_traits/add_reference.hpp>
+
+#include <boost/function_types/config/config.hpp>
+#include <boost/function_types/property_tags.hpp>
+
+namespace boost { namespace function_types { namespace detail {
+
+template<typename T> struct classifier;
+
+template<std::size_t S> struct char_array { typedef char (&type)[S]; };
+
+template<bits_t Flags, bits_t CCID, std::size_t Arity> struct encode_charr
+{
+ typedef typename char_array<
+ ::boost::function_types::detail::encode_charr_impl<Flags,CCID,Arity>::value
+ >::type type;
+};
+
+char BOOST_TT_DECL classifier_impl(...);
+
+#define BOOST_FT_variations BOOST_FT_function|BOOST_FT_pointer|\
+ BOOST_FT_member_pointer
+
+#define BOOST_FT_type_function(cc,name) BOOST_FT_SYNTAX( \
+ R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,* BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
+
+#define BOOST_FT_type_function_pointer(cc,name) BOOST_FT_SYNTAX( \
+ R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,** BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
+
+#define BOOST_FT_type_member_function_pointer(cc,name) BOOST_FT_SYNTAX( \
+ R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,T0::** BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
+
+#define BOOST_FT_al_path boost/function_types/detail/classifier_impl
+#include <boost/function_types/detail/pp_loop.hpp>
+
+template<typename T> struct classifier_bits
+{
+ static typename boost::add_reference<T>::type tester;
+
+ BOOST_STATIC_CONSTANT(bits_t,value = (bits_t)sizeof(
+ boost::function_types::detail::classifier_impl(& tester)
+ )-1);
+};
+
+template<typename T> struct classifier
+{
+ typedef detail::constant<
+ ::boost::function_types::detail::decode_bits<
+ ::boost::function_types::detail::classifier_bits<T>::value
+ >::tag_bits >
+ bits;
+
+ typedef detail::full_mask mask;
+
+ typedef detail::constant<
+ ::boost::function_types::detail::decode_bits<
+ ::boost::function_types::detail::classifier_bits<T>::value
+ >::arity >
+ function_arity;
+};
+
+
+
+} } } // namespace ::boost::function_types::detail
+
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity10_0.hpp b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity10_0.hpp
new file mode 100644
index 0000000..e27f3c2
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity10_0.hpp
@@ -0,0 +1,55 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+template< typename R >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,0> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (BOOST_FT_nullary_param BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,1> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,2> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,3> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,4> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,5> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,6> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,7> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,8> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,9> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,10> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv);
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity10_1.hpp b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity10_1.hpp
new file mode 100644
index 0000000..cca8027
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity10_1.hpp
@@ -0,0 +1,52 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+template< typename R , typename T0 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,1> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) ( BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,2> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,3> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,4> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,5> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,6> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,7> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,8> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,9> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,10> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv);
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity20_0.hpp b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity20_0.hpp
new file mode 100644
index 0000000..f7a2516
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity20_0.hpp
@@ -0,0 +1,53 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/classifier_impl/arity10_0.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,11> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,12> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,13> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,14> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,15> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,16> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,17> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,18> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,19> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,20> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv);
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity20_1.hpp b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity20_1.hpp
new file mode 100644
index 0000000..1cee2ba
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity20_1.hpp
@@ -0,0 +1,53 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/classifier_impl/arity10_1.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,11> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,12> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,13> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,14> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,15> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,16> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,17> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,18> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,19> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,20> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv);
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity30_0.hpp b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity30_0.hpp
new file mode 100644
index 0000000..6bc60f8
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity30_0.hpp
@@ -0,0 +1,53 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/classifier_impl/arity20_0.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,21> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,22> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,23> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,24> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,25> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,26> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,27> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,28> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,29> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,30> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv);
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity30_1.hpp b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity30_1.hpp
new file mode 100644
index 0000000..743c263
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity30_1.hpp
@@ -0,0 +1,53 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/classifier_impl/arity20_1.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,21> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,22> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,23> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,24> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,25> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,26> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,27> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,28> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,29> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,30> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv);
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity40_0.hpp b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity40_0.hpp
new file mode 100644
index 0000000..161ac17
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity40_0.hpp
@@ -0,0 +1,53 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/classifier_impl/arity30_0.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,31> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,32> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,33> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,34> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,35> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,36> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,37> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,38> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,39> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,40> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv);
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity40_1.hpp b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity40_1.hpp
new file mode 100644
index 0000000..e3a9988
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity40_1.hpp
@@ -0,0 +1,53 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/classifier_impl/arity30_1.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,31> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,32> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,33> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,34> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,35> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,36> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,37> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,38> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,39> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,40> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv);
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity50_0.hpp b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity50_0.hpp
new file mode 100644
index 0000000..d05719a
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity50_0.hpp
@@ -0,0 +1,53 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/classifier_impl/arity40_0.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,41> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,42> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,43> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,44> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,45> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,46> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,47> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,48> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,49> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,50> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv);
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity50_1.hpp b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity50_1.hpp
new file mode 100644
index 0000000..944eaba
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/arity50_1.hpp
@@ -0,0 +1,52 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/classifier_impl/arity40_1.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,41> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,42> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,43> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,44> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,45> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,46> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,47> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,48> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,49> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,50> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv);
diff --git a/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/master.hpp b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/master.hpp
new file mode 100644
index 0000000..00b722e
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/classifier_impl/master.hpp
@@ -0,0 +1,33 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+#if BOOST_FT_ARITY_LOOP_PREFIX
+
+# ifndef BOOST_FT_DETAIL_CLASSIFIER_IMPL_MASTER_HPP_INCLUDED
+# define BOOST_FT_DETAIL_CLASSIFIER_IMPL_MASTER_HPP_INCLUDED
+# include <boost/preprocessor/facilities/identity.hpp>
+# endif
+
+# define BOOST_FT_type_name
+
+#elif BOOST_FT_ARITY_LOOP_IS_ITERATING
+
+template< BOOST_FT_tplargs(BOOST_PP_IDENTITY(typename)) >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,BOOST_FT_arity>::type
+classifier_impl(BOOST_FT_type);
+
+#elif BOOST_FT_ARITY_LOOP_SUFFIX
+
+# undef BOOST_FT_type_name
+
+#else
+# error "attempt to use arity loop master file without loop"
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/components_as_mpl_sequence.hpp b/3rdParty/Boost/src/boost/function_types/detail/components_as_mpl_sequence.hpp
new file mode 100644
index 0000000..637b1b5
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/components_as_mpl_sequence.hpp
@@ -0,0 +1,138 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+#ifndef BOOST_FT_DETAIL_COMPONENTS_AS_MPL_SEQUENCE_HPP_INCLUDED
+#define BOOST_FT_DETAIL_COMPONENTS_AS_MPL_SEQUENCE_HPP_INCLUDED
+
+#include <boost/mpl/size_fwd.hpp>
+#include <boost/mpl/empty_fwd.hpp>
+#include <boost/mpl/front_fwd.hpp>
+#include <boost/mpl/back_fwd.hpp>
+#include <boost/mpl/at_fwd.hpp>
+#include <boost/mpl/begin_end_fwd.hpp>
+#include <boost/mpl/clear_fwd.hpp>
+#include <boost/mpl/push_front_fwd.hpp>
+#include <boost/mpl/pop_front_fwd.hpp>
+#include <boost/mpl/push_back_fwd.hpp>
+#include <boost/mpl/pop_back_fwd.hpp>
+
+namespace boost { namespace mpl {
+
+template<> struct size_impl
+< function_types::detail::components_mpl_sequence_tag >
+{
+ template< typename S > struct apply
+ : mpl::size <typename S::types>
+ { };
+};
+template<> struct empty_impl
+< function_types::detail::components_mpl_sequence_tag >
+{
+ template< typename S > struct apply
+ : mpl::empty <typename S::types>
+ { };
+};
+template<> struct front_impl
+< function_types::detail::components_mpl_sequence_tag >
+{
+ template< typename S > struct apply
+ : mpl::front <typename S::types>
+ { };
+};
+template<> struct back_impl
+< function_types::detail::components_mpl_sequence_tag >
+{
+ template< typename S > struct apply
+ : mpl::back <typename S::types>
+ { };
+};
+template<> struct at_impl
+< function_types::detail::components_mpl_sequence_tag >
+{
+ template< typename S, typename N > struct apply
+ : mpl::at <typename S::types, N >
+ { };
+};
+template<> struct begin_impl
+< function_types::detail::components_mpl_sequence_tag >
+{
+ template< typename S > struct apply
+ : mpl::begin <typename S::types>
+ { };
+};
+template<> struct end_impl
+< function_types::detail::components_mpl_sequence_tag >
+{
+ template< typename S > struct apply
+ : mpl::end <typename S::types>
+ { };
+};
+template<> struct clear_impl
+< function_types::detail::components_mpl_sequence_tag >
+{
+ template< typename S >
+ struct apply
+ : S
+ {
+ typedef apply type;
+ typedef typename mpl::clear< typename S::types >::type types;
+ };
+};
+template<>
+struct push_front_impl
+< function_types::detail::components_mpl_sequence_tag >
+{
+ template< typename S, typename T >
+ struct apply
+ : S
+ {
+ typedef apply type;
+ typedef typename mpl::push_front< typename S::types, T >::type types;
+ };
+};
+template<>
+struct pop_front_impl
+< function_types::detail::components_mpl_sequence_tag >
+{
+ template< typename S >
+ struct apply
+ : S
+ {
+ typedef apply type;
+ typedef typename mpl::pop_front< typename S::types >::type types;
+ };
+};
+template<>
+struct push_back_impl
+< function_types::detail::components_mpl_sequence_tag >
+{
+ template< typename S, typename T >
+ struct apply
+ : S
+ {
+ typedef apply type;
+ typedef typename mpl::push_back< typename S::types, T >::type types;
+ };
+};
+template<>
+struct pop_back_impl
+< function_types::detail::components_mpl_sequence_tag >
+{
+ template< typename S >
+ struct apply
+ : S
+ {
+ typedef apply type;
+ typedef typename mpl::pop_back< typename S::types >::type types;
+ };
+};
+
+} } // namespace ::boost::mpl
+
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity10_0.hpp b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity10_0.hpp
new file mode 100644
index 0000000..f96c6a9
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity10_0.hpp
@@ -0,0 +1,132 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+template< typename R, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (BOOST_FT_nullary_param BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (BOOST_FT_nullary_param BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,0> function_arity;
+typedef mpl::vector1< R BOOST_FT_nullary_param > types;
+};
+template< typename R , typename T0, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,1> function_arity;
+typedef mpl::vector2< R , T0 > types;
+};
+template< typename R , typename T0 , typename T1, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,2> function_arity;
+typedef mpl::vector3< R , T0 , T1 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,3> function_arity;
+typedef mpl::vector4< R , T0 , T1 , T2 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,4> function_arity;
+typedef mpl::vector5< R , T0 , T1 , T2 , T3 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,5> function_arity;
+typedef mpl::vector6< R , T0 , T1 , T2 , T3 , T4 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,6> function_arity;
+typedef mpl::vector7< R , T0 , T1 , T2 , T3 , T4 , T5 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,7> function_arity;
+typedef mpl::vector8< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,8> function_arity;
+typedef mpl::vector9< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,9> function_arity;
+typedef mpl::vector10< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,10> function_arity;
+typedef mpl::vector11< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 > types;
+};
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity10_1.hpp b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity10_1.hpp
new file mode 100644
index 0000000..1b06a97
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity10_1.hpp
@@ -0,0 +1,122 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+template< typename R , typename T0, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) ( BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) ( BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,1> function_arity;
+typedef mpl::vector2< R, typename class_transform<T0 BOOST_FT_cv, L> ::type > types;
+};
+template< typename R , typename T0 , typename T1, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,2> function_arity;
+typedef mpl::vector3< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,3> function_arity;
+typedef mpl::vector4< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,4> function_arity;
+typedef mpl::vector5< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,5> function_arity;
+typedef mpl::vector6< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,6> function_arity;
+typedef mpl::vector7< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,7> function_arity;
+typedef mpl::vector8< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,8> function_arity;
+typedef mpl::vector9< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,9> function_arity;
+typedef mpl::vector10< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,10> function_arity;
+typedef mpl::vector11< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 > types;
+};
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity20_0.hpp b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity20_0.hpp
new file mode 100644
index 0000000..f6b2ca8
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity20_0.hpp
@@ -0,0 +1,123 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/components_impl/arity10_0.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,11> function_arity;
+typedef mpl::vector12< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,12> function_arity;
+typedef mpl::vector13< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,13> function_arity;
+typedef mpl::vector14< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,14> function_arity;
+typedef mpl::vector15< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,15> function_arity;
+typedef mpl::vector16< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,16> function_arity;
+typedef mpl::vector17< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,17> function_arity;
+typedef mpl::vector18< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,18> function_arity;
+typedef mpl::vector19< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,19> function_arity;
+typedef mpl::vector20< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,20> function_arity;
+typedef mpl::vector21< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 > types;
+};
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity20_1.hpp b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity20_1.hpp
new file mode 100644
index 0000000..1688e6b
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity20_1.hpp
@@ -0,0 +1,123 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/components_impl/arity10_1.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,11> function_arity;
+typedef mpl::vector12< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,12> function_arity;
+typedef mpl::vector13< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,13> function_arity;
+typedef mpl::vector14< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,14> function_arity;
+typedef mpl::vector15< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,15> function_arity;
+typedef mpl::vector16< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,16> function_arity;
+typedef mpl::vector17< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,17> function_arity;
+typedef mpl::vector18< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,18> function_arity;
+typedef mpl::vector19< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,19> function_arity;
+typedef mpl::vector20< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,20> function_arity;
+typedef mpl::vector21< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 > types;
+};
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity30_0.hpp b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity30_0.hpp
new file mode 100644
index 0000000..e85eb3a
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity30_0.hpp
@@ -0,0 +1,123 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/components_impl/arity20_0.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,21> function_arity;
+typedef mpl::vector22< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,22> function_arity;
+typedef mpl::vector23< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,23> function_arity;
+typedef mpl::vector24< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,24> function_arity;
+typedef mpl::vector25< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,25> function_arity;
+typedef mpl::vector26< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,26> function_arity;
+typedef mpl::vector27< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,27> function_arity;
+typedef mpl::vector28< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,28> function_arity;
+typedef mpl::vector29< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,29> function_arity;
+typedef mpl::vector30< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,30> function_arity;
+typedef mpl::vector31< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 > types;
+};
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity30_1.hpp b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity30_1.hpp
new file mode 100644
index 0000000..290d21e
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity30_1.hpp
@@ -0,0 +1,123 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/components_impl/arity20_1.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,21> function_arity;
+typedef mpl::vector22< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,22> function_arity;
+typedef mpl::vector23< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,23> function_arity;
+typedef mpl::vector24< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,24> function_arity;
+typedef mpl::vector25< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,25> function_arity;
+typedef mpl::vector26< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,26> function_arity;
+typedef mpl::vector27< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,27> function_arity;
+typedef mpl::vector28< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,28> function_arity;
+typedef mpl::vector29< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,29> function_arity;
+typedef mpl::vector30< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,30> function_arity;
+typedef mpl::vector31< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 > types;
+};
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity40_0.hpp b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity40_0.hpp
new file mode 100644
index 0000000..f1a2410
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity40_0.hpp
@@ -0,0 +1,123 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/components_impl/arity30_0.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,31> function_arity;
+typedef mpl::vector32< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,32> function_arity;
+typedef mpl::vector33< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,33> function_arity;
+typedef mpl::vector34< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,34> function_arity;
+typedef mpl::vector35< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,35> function_arity;
+typedef mpl::vector36< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,36> function_arity;
+typedef mpl::vector37< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,37> function_arity;
+typedef mpl::vector38< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,38> function_arity;
+typedef mpl::vector39< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,39> function_arity;
+typedef mpl::vector40< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,40> function_arity;
+typedef mpl::vector41< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 > types;
+};
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity40_1.hpp b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity40_1.hpp
new file mode 100644
index 0000000..e1741cb
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity40_1.hpp
@@ -0,0 +1,123 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/components_impl/arity30_1.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,31> function_arity;
+typedef mpl::vector32< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,32> function_arity;
+typedef mpl::vector33< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,33> function_arity;
+typedef mpl::vector34< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,34> function_arity;
+typedef mpl::vector35< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,35> function_arity;
+typedef mpl::vector36< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,36> function_arity;
+typedef mpl::vector37< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,37> function_arity;
+typedef mpl::vector38< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,38> function_arity;
+typedef mpl::vector39< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,39> function_arity;
+typedef mpl::vector40< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,40> function_arity;
+typedef mpl::vector41< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 > types;
+};
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity50_0.hpp b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity50_0.hpp
new file mode 100644
index 0000000..693a05d
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity50_0.hpp
@@ -0,0 +1,123 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/components_impl/arity40_0.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,41> function_arity;
+typedef mpl::vector42< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,42> function_arity;
+typedef mpl::vector43< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,43> function_arity;
+typedef mpl::vector44< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,44> function_arity;
+typedef mpl::vector45< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,45> function_arity;
+typedef mpl::vector46< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,46> function_arity;
+typedef mpl::vector47< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,47> function_arity;
+typedef mpl::vector48< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,48> function_arity;
+typedef mpl::vector49< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,49> function_arity;
+typedef mpl::vector50< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,50> function_arity;
+typedef mpl::vector51< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 > types;
+};
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity50_1.hpp b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity50_1.hpp
new file mode 100644
index 0000000..9bc1616
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/components_impl/arity50_1.hpp
@@ -0,0 +1,123 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/components_impl/arity40_1.hpp>
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,41> function_arity;
+typedef mpl::vector42< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,42> function_arity;
+typedef mpl::vector43< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,43> function_arity;
+typedef mpl::vector44< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,44> function_arity;
+typedef mpl::vector45< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,45> function_arity;
+typedef mpl::vector46< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,46> function_arity;
+typedef mpl::vector47< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,47> function_arity;
+typedef mpl::vector48< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,48> function_arity;
+typedef mpl::vector49< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,49> function_arity;
+typedef mpl::vector50< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 > types;
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49, typename L>
+struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv, L>
+{
+typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+typedef constant<BOOST_FT_full_mask> mask;
+typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv, L> type;
+typedef components_mpl_sequence_tag tag;
+typedef mpl::integral_c<std::size_t,50> function_arity;
+typedef mpl::vector51< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 > types;
+};
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/components_impl/master.hpp b/3rdParty/Boost/src/boost/function_types/detail/components_impl/master.hpp
new file mode 100644
index 0000000..cd83726
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/components_impl/master.hpp
@@ -0,0 +1,61 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+#if BOOST_FT_ARITY_LOOP_PREFIX
+
+# ifndef BOOST_FT_DETAIL_COMPONENTS_IMPL_MASTER_HPP_INCLUDED
+# define BOOST_FT_DETAIL_COMPONENTS_IMPL_MASTER_HPP_INCLUDED
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/facilities/empty.hpp>
+# include <boost/preprocessor/facilities/identity.hpp>
+# include <boost/preprocessor/arithmetic/dec.hpp>
+# include <boost/preprocessor/punctuation/comma_if.hpp>
+# endif
+
+# define BOOST_FT_type_name
+
+# if !BOOST_FT_mfp
+
+# define BOOST_FT_types \
+ R BOOST_PP_COMMA_IF(BOOST_FT_arity) BOOST_FT_params(BOOST_PP_EMPTY)
+# else
+
+# define BOOST_FT_types \
+ R, typename class_transform<T0 BOOST_FT_cv, L>::type \
+ BOOST_PP_COMMA_IF(BOOST_PP_DEC(BOOST_FT_arity)) \
+ BOOST_FT_params(BOOST_PP_EMPTY)
+
+# endif
+
+#elif BOOST_FT_ARITY_LOOP_IS_ITERATING
+
+template< BOOST_FT_tplargs(BOOST_PP_IDENTITY(typename)), typename L>
+struct components_impl<BOOST_FT_type, L>
+{
+ typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
+ typedef constant<BOOST_FT_full_mask> mask;
+
+ typedef function_types::components<BOOST_FT_type, L> type;
+ typedef components_mpl_sequence_tag tag;
+
+ typedef mpl::integral_c<std::size_t,BOOST_FT_arity> function_arity;
+
+ typedef BOOST_PP_CAT(mpl::vector,BOOST_FT_n)< BOOST_FT_types > types;
+};
+
+#elif BOOST_FT_ARITY_LOOP_SUFFIX
+
+# undef BOOST_FT_types
+# undef BOOST_FT_type_name
+
+#else
+# error "attempt to use arity loop master file without loop"
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/cv_traits.hpp b/3rdParty/Boost/src/boost/function_types/detail/cv_traits.hpp
new file mode 100644
index 0000000..242f45b
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/cv_traits.hpp
@@ -0,0 +1,134 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+#ifndef BOOST_FT_DETAIL_CV_TRAITS_HPP_INCLUDED
+#define BOOST_FT_DETAIL_CV_TRAITS_HPP_INCLUDED
+
+#include <cstddef>
+#include <boost/detail/workaround.hpp>
+
+#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+ || BOOST_WORKAROUND(__BORLANDC__, <= 0x582)
+# include <boost/type_traits/remove_cv.hpp>
+# include <boost/type_traits/remove_pointer.hpp>
+# include <boost/type_traits/remove_reference.hpp>
+#endif
+
+#include <boost/function_types/property_tags.hpp>
+
+namespace boost { namespace function_types { namespace detail {
+
+#if ! (defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+ || BOOST_WORKAROUND(__BORLANDC__, <= 0x582))
+
+template<typename T> struct cv_traits
+{ typedef non_cv tag; typedef T type; };
+template<typename T> struct cv_traits<T &>
+{ typedef non_cv tag; typedef T type; };
+template<typename T> struct cv_traits<T *>
+{ typedef non_cv tag; typedef T type; };
+template<typename T> struct cv_traits<T * const>
+{ typedef non_cv tag; typedef T type; };
+template<typename T> struct cv_traits<T * volatile>
+{ typedef non_cv tag; typedef T type; };
+template<typename T> struct cv_traits<T * const volatile>
+{ typedef non_cv tag; typedef T type; };
+
+template<typename T> struct cv_traits<T const>
+{ typedef const_non_volatile tag; typedef T type; };
+template<typename T> struct cv_traits<T const &>
+{ typedef const_non_volatile tag; typedef T type; };
+template<typename T> struct cv_traits<T const *>
+{ typedef const_non_volatile tag; typedef T type; };
+template<typename T> struct cv_traits<T const * const>
+{ typedef const_non_volatile tag; typedef T type; };
+template<typename T> struct cv_traits<T const * volatile>
+{ typedef const_non_volatile tag; typedef T type; };
+template<typename T> struct cv_traits<T const * const volatile>
+{ typedef const_non_volatile tag; typedef T type; };
+
+template<typename T> struct cv_traits<T volatile>
+{ typedef volatile_non_const tag; typedef T type; };
+template<typename T> struct cv_traits<T volatile &>
+{ typedef volatile_non_const tag; typedef T type; };
+template<typename T> struct cv_traits<T volatile *>
+{ typedef volatile_non_const tag; typedef T type; };
+template<typename T> struct cv_traits<T volatile * const>
+{ typedef volatile_non_const tag; typedef T type; };
+template<typename T> struct cv_traits<T volatile * volatile>
+{ typedef volatile_non_const tag; typedef T type; };
+template<typename T> struct cv_traits<T volatile * const volatile>
+{ typedef volatile_non_const tag; typedef T type; };
+
+template<typename T> struct cv_traits<T const volatile>
+{ typedef cv_qualified tag; typedef T type; };
+template<typename T> struct cv_traits<T const volatile &>
+{ typedef cv_qualified tag; typedef T type; };
+template<typename T> struct cv_traits<T const volatile *>
+{ typedef cv_qualified tag; typedef T type; };
+template<typename T> struct cv_traits<T const volatile * const>
+{ typedef cv_qualified tag; typedef T type; };
+template<typename T> struct cv_traits<T const volatile * volatile>
+{ typedef cv_qualified tag; typedef T type; };
+template<typename T> struct cv_traits<T const volatile * const volatile>
+{ typedef cv_qualified tag; typedef T type; };
+
+#else
+template<std::size_t> struct cv_tag_impl;
+
+template<> struct cv_tag_impl<1> { typedef non_cv type;};
+template<> struct cv_tag_impl<2> { typedef const_non_volatile type; };
+template<> struct cv_tag_impl<3> { typedef volatile_non_const type; };
+template<> struct cv_tag_impl<4> { typedef cv_qualified type; };
+
+typedef char (& case_1)[1];
+typedef char (& case_2)[2];
+typedef char (& case_3)[3];
+typedef char (& case_4)[4];
+
+template<typename T> case_1 switch_cv(T *);
+template<typename T> case_2 switch_cv(T const *);
+template<typename T> case_3 switch_cv(T volatile *);
+template<typename T> case_4 switch_cv(T const volatile *);
+
+template<typename T> T * ref_to_ptr(T &);
+template<typename T> T const * ref_to_ptr(T const &);
+template<typename T> T volatile * ref_to_ptr(T volatile &);
+template<typename T> T const volatile * ref_to_ptr(T const volatile &);
+
+template<typename T> T * ref_to_ptr(T * const volatile &);
+
+template<typename T>
+struct cv_code
+{
+ static T _t;
+ BOOST_STATIC_CONSTANT(std::size_t, value =
+ sizeof(::boost::function_types::detail::switch_cv(
+ ::boost::function_types::detail::ref_to_ptr(_t) ) ));
+};
+
+template<typename T> struct cv_traits
+{
+ typedef typename boost::function_types::detail::cv_tag_impl<
+ ::boost::function_types::detail::cv_code<T>::value >::type
+ tag;
+
+ // may require Boost.TypeTraits broken compiler specializations
+ // to work
+ typedef typename boost::remove_cv<
+ typename boost::remove_pointer<
+ typename boost::remove_reference<T>::type
+ >::type
+ >::type type;
+};
+#endif
+
+} } } // namespace boost::function_types::detail
+
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/encoding/aliases_def.hpp b/3rdParty/Boost/src/boost/function_types/detail/encoding/aliases_def.hpp
new file mode 100644
index 0000000..4d48331
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/encoding/aliases_def.hpp
@@ -0,0 +1,16 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusions
+
+#define callable_builtin BOOST_FT_callable_builtin
+#define member BOOST_FT_member_pointer
+#define non_member BOOST_FT_non_member
+#define variadic BOOST_FT_variadic
+#define non_variadic BOOST_FT_non_variadic
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/encoding/aliases_undef.hpp b/3rdParty/Boost/src/boost/function_types/detail/encoding/aliases_undef.hpp
new file mode 100644
index 0000000..1d4e577
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/encoding/aliases_undef.hpp
@@ -0,0 +1,16 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusions
+
+#undef callable_builtin
+#undef member
+#undef non_member
+#undef variadic
+#undef non_variadic
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/encoding/def.hpp b/3rdParty/Boost/src/boost/function_types/detail/encoding/def.hpp
new file mode 100644
index 0000000..08074fb
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/encoding/def.hpp
@@ -0,0 +1,51 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusions
+
+// Type encoding:
+//
+// bit 0: callable builtin
+// bit 1: non member
+// bit 2: naked function
+// bit 3: pointer
+// bit 4: reference
+// bit 5: member pointer
+// bit 6: member function pointer
+// bit 7: member object pointer
+
+#define BOOST_FT_type_mask 0x000000ff // 1111 1111
+#define BOOST_FT_callable_builtin 0x00000001 // 0000 0001
+#define BOOST_FT_non_member 0x00000002 // 0000 0010
+#define BOOST_FT_function 0x00000007 // 0000 0111
+#define BOOST_FT_pointer 0x0000000b // 0000 1011
+#define BOOST_FT_reference 0x00000013 // 0001 0011
+#define BOOST_FT_non_member_callable_builtin 0x00000003 // 0000 0011
+#define BOOST_FT_member_pointer 0x00000020 // 0010 0000
+#define BOOST_FT_member_function_pointer 0x00000061 // 0110 0001
+#define BOOST_FT_member_object_pointer 0x000000a3 // 1010 0001
+#define BOOST_FT_member_object_pointer_flags 0x000002a3
+
+#define BOOST_FT_variadic 0x00000100
+#define BOOST_FT_non_variadic 0x00000200
+#define BOOST_FT_variadic_mask 0x00000300
+
+#define BOOST_FT_const 0x00000400
+#define BOOST_FT_volatile 0x00000800
+
+#define BOOST_FT_default_cc 0x00008000
+#define BOOST_FT_cc_mask 0x00ff8000
+
+#define BOOST_FT_kind_mask 0x000000fc
+
+#define BOOST_FT_flags_mask 0x00000fff
+#define BOOST_FT_full_mask 0x00ff0fff
+
+#define BOOST_FT_arity_shift 24
+#define BOOST_FT_arity_mask 0x7f000000
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/encoding/undef.hpp b/3rdParty/Boost/src/boost/function_types/detail/encoding/undef.hpp
new file mode 100644
index 0000000..1920d6f
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/encoding/undef.hpp
@@ -0,0 +1,38 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+#undef BOOST_FT_type_mask
+#undef BOOST_FT_kind_mask
+#undef BOOST_FT_callable_builtin
+#undef BOOST_FT_non_member
+#undef BOOST_FT_function
+#undef BOOST_FT_pointer
+#undef BOOST_FT_reference
+#undef BOOST_FT_non_member_callable_builtin
+#undef BOOST_FT_member_pointer
+#undef BOOST_FT_member_function_pointer
+#undef BOOST_FT_member_object_pointer
+#undef BOOST_FT_member_object_pointer_flags
+
+#undef BOOST_FT_variadic
+#undef BOOST_FT_non_variadic
+#undef BOOST_FT_variadic_mask
+
+#undef BOOST_FT_const
+#undef BOOST_FT_volatile
+
+#undef BOOST_FT_default_cc
+#undef BOOST_FT_cc_mask
+
+#undef BOOST_FT_flags_mask
+#undef BOOST_FT_full_mask
+
+#undef BOOST_FT_arity_mask
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/pp_arity_loop.hpp b/3rdParty/Boost/src/boost/function_types/detail/pp_arity_loop.hpp
new file mode 100644
index 0000000..b6dbff5
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/pp_arity_loop.hpp
@@ -0,0 +1,149 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+#ifndef BOOST_FT_PREPROCESSING_MODE
+// input: BOOST_FT_mfp 0 or 1 <=> member function pointer?
+// input: BOOST_FT_type_name BOOST_FT_type --> "R (* ..._type_name)()" (pass2)
+#endif
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+#ifdef __WAVE__
+# pragma wave option(preserve: 0)
+#endif
+
+#ifndef BOOST_FT_ARITY_LOOP_IS_ITERATING
+
+# define BOOST_FT_AL_PREPROCESSED \
+ BOOST_FT_AL_FILE(BOOST_FT_al_path,BOOST_FT_FROM_ARITY,BOOST_FT_mfp)
+
+# define BOOST_FT_AL_FILE(base_path,max_arity,mfp) \
+ BOOST_FT_AL_FILE_I(base_path,max_arity,mfp)
+# define BOOST_FT_AL_FILE_I(base_path,max_arity,mfp) \
+ <base_path/arity ## max_arity ## _ ## mfp.hpp>
+
+# if !defined(BOOST_FT_PREPROCESSING_MODE)
+
+# if BOOST_FT_MAX_ARITY < 10
+# define BOOST_FT_FROM_ARITY 0
+# elif BOOST_FT_MAX_ARITY < 20
+# define BOOST_FT_FROM_ARITY 10
+# elif BOOST_FT_MAX_ARITY < 30
+# define BOOST_FT_FROM_ARITY 20
+# elif BOOST_FT_MAX_ARITY < 40
+# define BOOST_FT_FROM_ARITY 30
+# endif
+
+# if BOOST_FT_FROM_ARITY
+# include BOOST_FT_AL_PREPROCESSED
+# endif
+
+# elif !defined(BOOST_FT_FROM_ARITY) // single pass preprocessing
+# define BOOST_FT_FROM_ARITY 0
+
+# elif BOOST_FT_FROM_ARITY > 0 // arity20 includes arity10
+BOOST_PP_EXPAND(#) include BOOST_FT_AL_PREPROCESSED
+# endif
+
+# undef BOOST_FT_AL_PREPROCESSED
+
+# undef BOOST_FT_AL_FILE
+# undef BOOST_FT_AL_FILE_I
+
+# if BOOST_FT_MAX_ARITY > BOOST_FT_FROM_ARITY
+
+# ifndef BOOST_FT_DETAIL_ARITY_LOOP_HPP_INCLUDED
+# define BOOST_FT_DETAIL_ARITY_LOOP_HPP_INCLUDED
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/tuple/eat.hpp>
+# include <boost/preprocessor/control/if.hpp>
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/facilities/empty.hpp>
+# include <boost/preprocessor/facilities/expand.hpp>
+# include <boost/preprocessor/iteration/iterate.hpp>
+# include <boost/preprocessor/repetition/enum_params.hpp>
+# include <boost/preprocessor/repetition/enum_shifted_params.hpp>
+# include <boost/preprocessor/repetition/enum_trailing_params.hpp>
+# endif
+
+# define BOOST_FT_AL_INCLUDE_FILE <BOOST_FT_al_path/master.hpp>
+
+# define BOOST_FT_ARITY_LOOP_PREFIX 1
+# include BOOST_FT_AL_INCLUDE_FILE
+# undef BOOST_FT_ARITY_LOOP_PREFIX
+
+# if !BOOST_PP_IS_ITERATING
+# define BOOST_PP_FILENAME_1 BOOST_FT_AL_INCLUDE_FILE
+# elif BOOST_PP_ITERATION_DEPTH() == 1
+# define BOOST_PP_FILENAME_2 BOOST_FT_AL_INCLUDE_FILE
+# else
+# error "loops nested too deeply"
+# endif
+
+# define BOOST_FT_arity BOOST_PP_ITERATION()
+# define BOOST_FT_n BOOST_PP_INC(BOOST_FT_arity)
+
+# define BOOST_FT_type \
+ BOOST_FT_syntax(BOOST_FT_cc,BOOST_FT_type_name BOOST_PP_EMPTY)\
+ (BOOST_FT_params(BOOST_PP_EMPTY) BOOST_FT_ell) BOOST_FT_cv
+
+# define BOOST_FT_tplargs(prefx) \
+ prefx() R BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_FT_arity,prefx() T)
+
+# if !BOOST_FT_mfp
+
+# define BOOST_FT_params(prefx) \
+ BOOST_PP_IF(BOOST_FT_arity,BOOST_PP_ENUM_PARAMS, \
+ BOOST_FT_nullary_param BOOST_PP_TUPLE_EAT(2))( \
+ BOOST_FT_arity,prefx() T)
+# else
+
+# define BOOST_FT_params(prefx) \
+ BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_FT_arity,prefx() T)
+
+# endif
+
+# if !BOOST_FT_FROM_ARITY
+# define BOOST_PP_ITERATION_LIMITS (BOOST_FT_mfp, BOOST_FT_MAX_ARITY)
+# else
+# define BOOST_PP_ITERATION_LIMITS \
+ (BOOST_FT_FROM_ARITY+1, BOOST_FT_MAX_ARITY)
+# endif
+
+# define BOOST_FT_ARITY_LOOP_IS_ITERATING 1
+# include BOOST_PP_ITERATE()
+# undef BOOST_FT_ARITY_LOOP_IS_ITERATING
+
+# undef BOOST_FT_arity
+# undef BOOST_FT_params
+# undef BOOST_FT_tplargs
+# undef BOOST_FT_type
+
+# define BOOST_FT_ARITY_LOOP_SUFFIX 1
+# include BOOST_FT_AL_INCLUDE_FILE
+# undef BOOST_FT_ARITY_LOOP_SUFFIX
+
+# undef BOOST_FT_AL_INCLUDE_FILE
+# endif
+
+# undef BOOST_FT_FROM_ARITY
+
+#else
+# error "attempt to nest arity loops"
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/pp_cc_loop/master.hpp b/3rdParty/Boost/src/boost/function_types/detail/pp_cc_loop/master.hpp
new file mode 100644
index 0000000..60e958c
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/pp_cc_loop/master.hpp
@@ -0,0 +1,136 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusions
+
+#ifdef __WAVE__
+// this file has been generated from the master.hpp file in the same directory
+# pragma wave option(preserve: 0)
+#endif
+
+
+#if !BOOST_PP_IS_ITERATING
+
+# ifndef BOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
+# define BOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
+# include <boost/function_types/config/cc_names.hpp>
+
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/seq/size.hpp>
+# include <boost/preprocessor/seq/elem.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/iteration/iterate.hpp>
+# include <boost/preprocessor/facilities/expand.hpp>
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# endif
+
+# include <boost/function_types/detail/encoding/def.hpp>
+# include <boost/function_types/detail/encoding/aliases_def.hpp>
+
+# define BOOST_PP_FILENAME_1 \
+ <boost/function_types/detail/pp_cc_loop/master.hpp>
+# define BOOST_PP_ITERATION_LIMITS \
+ (0,BOOST_PP_SEQ_SIZE(BOOST_FT_CC_NAMES_SEQ)-1)
+# include BOOST_PP_ITERATE()
+# if !defined(BOOST_FT_config_valid) && BOOST_FT_CC_PREPROCESSING
+# define BOOST_FT_cc_id 1
+# define BOOST_FT_cc_name implicit_cc
+# define BOOST_FT_cc BOOST_PP_EMPTY
+# define BOOST_FT_cond callable_builtin
+# include BOOST_FT_cc_file
+# undef BOOST_FT_cond
+# undef BOOST_FT_cc_name
+# undef BOOST_FT_cc
+# undef BOOST_FT_cc_id
+# elif !defined(BOOST_FT_config_valid) // and generating preprocessed file
+BOOST_PP_EXPAND(#) ifndef BOOST_FT_config_valid
+BOOST_PP_EXPAND(#) define BOOST_FT_cc_id 1
+BOOST_PP_EXPAND(#) define BOOST_FT_cc_name implicit_cc
+BOOST_PP_EXPAND(#) define BOOST_FT_cc BOOST_PP_EMPTY
+BOOST_PP_EXPAND(#) define BOOST_FT_cond callable_builtin
+#define _()
+BOOST_PP_EXPAND(#) include BOOST_FT_cc_file
+#undef _
+BOOST_PP_EXPAND(#) undef BOOST_FT_cond
+BOOST_PP_EXPAND(#) undef BOOST_FT_cc_name
+BOOST_PP_EXPAND(#) undef BOOST_FT_cc
+BOOST_PP_EXPAND(#) undef BOOST_FT_cc_id
+BOOST_PP_EXPAND(#) else
+BOOST_PP_EXPAND(#) undef BOOST_FT_config_valid
+BOOST_PP_EXPAND(#) endif
+
+# else
+# undef BOOST_FT_config_valid
+# endif
+
+# include <boost/function_types/detail/encoding/aliases_undef.hpp>
+# include <boost/function_types/detail/encoding/undef.hpp>
+
+#elif BOOST_FT_CC_PREPROCESSING
+
+# define BOOST_FT_cc_id BOOST_PP_INC(BOOST_PP_FRAME_ITERATION(1))
+# define BOOST_FT_cc_inf \
+ BOOST_PP_SEQ_ELEM(BOOST_PP_FRAME_ITERATION(1),BOOST_FT_CC_NAMES_SEQ)
+
+# define BOOST_FT_cc_pp_name BOOST_PP_TUPLE_ELEM(3,0,BOOST_FT_cc_inf)
+# define BOOST_FT_cc_name BOOST_PP_TUPLE_ELEM(3,1,BOOST_FT_cc_inf)
+# define BOOST_FT_cc BOOST_PP_TUPLE_ELEM(3,2,BOOST_FT_cc_inf)
+
+# define BOOST_FT_cond BOOST_PP_CAT(BOOST_FT_CC_,BOOST_FT_cc_pp_name)
+
+# if BOOST_FT_cond
+# define BOOST_FT_config_valid 1
+# include BOOST_FT_cc_file
+# endif
+
+# undef BOOST_FT_cond
+
+# undef BOOST_FT_cc_pp_name
+# undef BOOST_FT_cc_name
+# undef BOOST_FT_cc
+
+# undef BOOST_FT_cc_id
+# undef BOOST_FT_cc_inf
+
+#else // if generating preprocessed file
+BOOST_PP_EXPAND(#) define BOOST_FT_cc_id BOOST_PP_INC(BOOST_PP_ITERATION())
+
+# define BOOST_FT_cc_inf \
+ BOOST_PP_SEQ_ELEM(BOOST_PP_ITERATION(),BOOST_FT_CC_NAMES_SEQ)
+
+# define BOOST_FT_cc_pp_name BOOST_PP_TUPLE_ELEM(3,0,BOOST_FT_cc_inf)
+
+# define BOOST_FT_CC_DEF(name,index) \
+ name BOOST_PP_TUPLE_ELEM(3,index,BOOST_FT_cc_inf)
+BOOST_PP_EXPAND(#) define BOOST_FT_CC_DEF(BOOST_FT_cc_name,1)
+BOOST_PP_EXPAND(#) define BOOST_FT_CC_DEF(BOOST_FT_cc,2)
+# undef BOOST_FT_CC_DEF
+
+# define BOOST_FT_cc_cond_v BOOST_PP_CAT(BOOST_FT_CC_,BOOST_FT_cc_pp_name)
+BOOST_PP_EXPAND(#) define BOOST_FT_cond BOOST_FT_cc_cond_v
+# undef BOOST_FT_cc_cond_v
+
+# undef BOOST_FT_cc_pp_name
+# undef BOOST_FT_cc_inf
+
+BOOST_PP_EXPAND(#) if BOOST_FT_cond
+BOOST_PP_EXPAND(#) define BOOST_FT_config_valid 1
+#define _()
+BOOST_PP_EXPAND(#) include BOOST_FT_cc_file
+#undef _
+BOOST_PP_EXPAND(#) endif
+
+BOOST_PP_EXPAND(#) undef BOOST_FT_cond
+
+BOOST_PP_EXPAND(#) undef BOOST_FT_cc_name
+BOOST_PP_EXPAND(#) undef BOOST_FT_cc
+
+BOOST_PP_EXPAND(#) undef BOOST_FT_cc_id
+
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/pp_cc_loop/preprocessed.hpp b/3rdParty/Boost/src/boost/function_types/detail/pp_cc_loop/preprocessed.hpp
new file mode 100644
index 0000000..da4079c
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/pp_cc_loop/preprocessed.hpp
@@ -0,0 +1,120 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusions
+
+// this file has been generated from the master.hpp file in the same directory
+# define BOOST_FT_cc_id 1
+# define BOOST_FT_cc_name implicit_cc
+# define BOOST_FT_cc BOOST_PP_EMPTY
+# define BOOST_FT_cond BOOST_FT_CC_IMPLICIT
+# if BOOST_FT_cond
+# define BOOST_FT_config_valid 1
+# include BOOST_FT_cc_file
+# endif
+# undef BOOST_FT_cond
+# undef BOOST_FT_cc_name
+# undef BOOST_FT_cc
+# undef BOOST_FT_cc_id
+# define BOOST_FT_cc_id 2
+# define BOOST_FT_cc_name cdecl_cc
+# define BOOST_FT_cc BOOST_PP_IDENTITY(__cdecl )
+# define BOOST_FT_cond BOOST_FT_CC_CDECL
+# if BOOST_FT_cond
+# define BOOST_FT_config_valid 1
+# include BOOST_FT_cc_file
+# endif
+# undef BOOST_FT_cond
+# undef BOOST_FT_cc_name
+# undef BOOST_FT_cc
+# undef BOOST_FT_cc_id
+# define BOOST_FT_cc_id 3
+# define BOOST_FT_cc_name stdcall_cc
+# define BOOST_FT_cc BOOST_PP_IDENTITY(__stdcall )
+# define BOOST_FT_cond BOOST_FT_CC_STDCALL
+# if BOOST_FT_cond
+# define BOOST_FT_config_valid 1
+# include BOOST_FT_cc_file
+# endif
+# undef BOOST_FT_cond
+# undef BOOST_FT_cc_name
+# undef BOOST_FT_cc
+# undef BOOST_FT_cc_id
+# define BOOST_FT_cc_id 4
+# define BOOST_FT_cc_name pascal_cc
+# define BOOST_FT_cc BOOST_PP_IDENTITY(pascal )
+# define BOOST_FT_cond BOOST_FT_CC_PASCAL
+# if BOOST_FT_cond
+# define BOOST_FT_config_valid 1
+# include BOOST_FT_cc_file
+# endif
+# undef BOOST_FT_cond
+# undef BOOST_FT_cc_name
+# undef BOOST_FT_cc
+# undef BOOST_FT_cc_id
+# define BOOST_FT_cc_id 5
+# define BOOST_FT_cc_name fastcall_cc
+# define BOOST_FT_cc BOOST_PP_IDENTITY(__fastcall)
+# define BOOST_FT_cond BOOST_FT_CC_FASTCALL
+# if BOOST_FT_cond
+# define BOOST_FT_config_valid 1
+# include BOOST_FT_cc_file
+# endif
+# undef BOOST_FT_cond
+# undef BOOST_FT_cc_name
+# undef BOOST_FT_cc
+# undef BOOST_FT_cc_id
+# define BOOST_FT_cc_id 6
+# define BOOST_FT_cc_name clrcall_cc
+# define BOOST_FT_cc BOOST_PP_IDENTITY(__clrcall )
+# define BOOST_FT_cond BOOST_FT_CC_CLRCALL
+# if BOOST_FT_cond
+# define BOOST_FT_config_valid 1
+# include BOOST_FT_cc_file
+# endif
+# undef BOOST_FT_cond
+# undef BOOST_FT_cc_name
+# undef BOOST_FT_cc
+# undef BOOST_FT_cc_id
+# define BOOST_FT_cc_id 7
+# define BOOST_FT_cc_name thiscall_cc
+# define BOOST_FT_cc BOOST_PP_IDENTITY(__thiscall)
+# define BOOST_FT_cond BOOST_FT_CC_THISCALL
+# if BOOST_FT_cond
+# define BOOST_FT_config_valid 1
+# include BOOST_FT_cc_file
+# endif
+# undef BOOST_FT_cond
+# undef BOOST_FT_cc_name
+# undef BOOST_FT_cc
+# undef BOOST_FT_cc_id
+# define BOOST_FT_cc_id 8
+# define BOOST_FT_cc_name thiscall_cc
+# define BOOST_FT_cc BOOST_PP_EMPTY
+# define BOOST_FT_cond BOOST_FT_CC_IMPLICIT_THISCALL
+# if BOOST_FT_cond
+# define BOOST_FT_config_valid 1
+# include BOOST_FT_cc_file
+# endif
+# undef BOOST_FT_cond
+# undef BOOST_FT_cc_name
+# undef BOOST_FT_cc
+# undef BOOST_FT_cc_id
+# ifndef BOOST_FT_config_valid
+# define BOOST_FT_cc_id 1
+# define BOOST_FT_cc_name implicit_cc
+# define BOOST_FT_cc BOOST_PP_EMPTY
+# define BOOST_FT_cond 0x00000001
+# include BOOST_FT_cc_file
+# undef BOOST_FT_cond
+# undef BOOST_FT_cc_name
+# undef BOOST_FT_cc
+# undef BOOST_FT_cc_id
+# else
+# undef BOOST_FT_config_valid
+# endif
diff --git a/3rdParty/Boost/src/boost/function_types/detail/pp_loop.hpp b/3rdParty/Boost/src/boost/function_types/detail/pp_loop.hpp
new file mode 100644
index 0000000..7d8c347
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/pp_loop.hpp
@@ -0,0 +1,80 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusions
+
+#ifndef BOOST_FT_DETAIL_PP_LOOP_HPP_INCLUDED
+#define BOOST_FT_DETAIL_PP_LOOP_HPP_INCLUDED
+# include <boost/preprocessor/facilities/expand.hpp>
+# include <boost/preprocessor/facilities/empty.hpp>
+# include <boost/preprocessor/punctuation/paren.hpp>
+#endif
+
+#include <boost/function_types/detail/encoding/def.hpp>
+#include <boost/function_types/detail/encoding/aliases_def.hpp>
+
+#if defined(BOOST_FT_PREPROCESSING_MODE)
+# define BOOST_FT_loop <boost/function_types/detail/pp_cc_loop/master.hpp>
+#else
+# define BOOST_FT_loop \
+ <boost/function_types/detail/pp_cc_loop/preprocessed.hpp>
+#endif
+
+#if defined(BOOST_FT_al_path)
+
+# define BOOST_FT_cc_file \
+ <boost/function_types/detail/pp_variate_loop/preprocessed.hpp>
+# define BOOST_FT_variate_file \
+ <boost/function_types/detail/pp_arity_loop.hpp>
+
+# ifndef BOOST_FT_type_function
+# define BOOST_FT_type_function(cc,name) BOOST_FT_SYNTAX( \
+ R BOOST_PP_EMPTY,BOOST_PP_EMPTY,cc,BOOST_PP_EMPTY,name,BOOST_PP_EMPTY)
+# endif
+# ifndef BOOST_FT_type_function_pointer
+# define BOOST_FT_type_function_pointer(cc,name) BOOST_FT_SYNTAX( \
+ R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,* BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
+# endif
+# ifndef BOOST_FT_type_function_reference
+# define BOOST_FT_type_function_reference(cc,name) BOOST_FT_SYNTAX( \
+ R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,& BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
+# endif
+# ifndef BOOST_FT_type_member_function_pointer
+# define BOOST_FT_type_member_function_pointer(cc,name) BOOST_FT_SYNTAX( \
+ R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,T0::* BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
+# endif
+
+# include BOOST_FT_loop
+
+# undef BOOST_FT_type_function
+# undef BOOST_FT_type_function_pointer
+# undef BOOST_FT_type_function_reference
+# undef BOOST_FT_type_member_function_pointer
+
+# undef BOOST_FT_variations
+# undef BOOST_FT_variate_file
+# undef BOOST_FT_cc_file
+# undef BOOST_FT_al_path
+
+#elif defined(BOOST_FT_cc_file)
+
+# include BOOST_FT_loop
+# undef BOOST_FT_cc_file
+
+#else
+
+# error "argument missing"
+
+#endif
+
+#undef BOOST_FT_loop
+
+#include <boost/function_types/detail/encoding/aliases_undef.hpp>
+#include <boost/function_types/detail/encoding/undef.hpp>
+
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/pp_retag_default_cc/master.hpp b/3rdParty/Boost/src/boost/function_types/detail/pp_retag_default_cc/master.hpp
new file mode 100644
index 0000000..865efce
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/pp_retag_default_cc/master.hpp
@@ -0,0 +1,103 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is guarded externally
+
+#ifdef __WAVE__
+// this file has been generated from the master.hpp file in the same directory
+# pragma wave option(preserve: 0)
+#endif
+
+#if !defined(BOOST_PP_VALUE)
+# include <boost/preprocessor/slot/slot.hpp>
+# include <boost/preprocessor/iteration/self.hpp>
+
+# include <boost/function_types/detail/encoding/def.hpp>
+# include <boost/function_types/detail/encoding/aliases_def.hpp>
+
+namespace boost { namespace function_types {
+
+namespace detail
+{
+ template<class Tag, class RefTag> struct selector_bits
+ {
+# define BOOST_PP_VALUE non_member|member|non_variadic|variadic
+# include BOOST_PP_ASSIGN_SLOT(1)
+
+ BOOST_STATIC_CONSTANT(bits_t, value = (
+ (::boost::function_types::detail::bits<Tag>::value & BOOST_FT_default_cc)
+ | (::boost::function_types::detail::bits<RefTag>::value & BOOST_PP_SLOT(1))
+ ));
+ };
+
+ template<bits_t SelectorBits> struct default_cc_tag;
+
+ template<class Tag, class RefTag> struct retag_default_cc
+ : detail::compound_tag
+ < Tag, detail::default_cc_tag<
+ ::boost::function_types::detail::selector_bits<Tag,RefTag>::value > >
+ { };
+
+ template<bits_t SelectorBits> struct default_cc_tag
+ {
+ typedef null_tag::bits bits;
+ typedef null_tag::mask mask;
+ };
+
+ class test_class;
+ typedef constant<BOOST_FT_cc_mask> cc_mask_constant;
+
+# define BOOST_FT_self \
+ <boost/function_types/detail/pp_retag_default_cc/master.hpp>
+
+# define default_cc_ BOOST_FT_default_cc
+
+# define BOOST_PP_VALUE default_cc_|non_member|non_variadic
+# define BOOST_FT_tester void (*tester)()
+# define BOOST_PP_INDIRECT_SELF BOOST_FT_self
+# include BOOST_PP_INCLUDE_SELF()
+
+# define BOOST_PP_VALUE default_cc_|non_member|variadic
+# define BOOST_FT_tester void (*tester)(...)
+# define BOOST_PP_INDIRECT_SELF BOOST_FT_self
+# include BOOST_PP_INCLUDE_SELF()
+
+# define BOOST_PP_VALUE default_cc_|member|non_variadic
+# define BOOST_FT_tester void (test_class::*tester)()
+# define BOOST_PP_INDIRECT_SELF BOOST_FT_self
+# include BOOST_PP_INCLUDE_SELF()
+
+# define BOOST_PP_VALUE default_cc_|member|variadic
+# define BOOST_FT_tester void (test_class::*tester)(...)
+# define BOOST_PP_INDIRECT_SELF BOOST_FT_self
+# include BOOST_PP_INCLUDE_SELF()
+
+# undef default_cc_
+
+# undef BOOST_FT_self
+
+} } } // namespace ::boost::function_types::detail
+
+# include <boost/function_types/detail/encoding/aliases_undef.hpp>
+# include <boost/function_types/detail/encoding/undef.hpp>
+
+#else // if defined(BOOST_PP_VALUE)
+
+# include BOOST_PP_ASSIGN_SLOT(1)
+
+ template<> struct default_cc_tag<BOOST_PP_SLOT(1)>
+ {
+ typedef BOOST_FT_tester;
+ typedef mpl::bitand_<components<tester>::bits,cc_mask_constant> bits;
+ typedef cc_mask_constant mask;
+ };
+
+# undef BOOST_FT_tester
+
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/pp_retag_default_cc/preprocessed.hpp b/3rdParty/Boost/src/boost/function_types/detail/pp_retag_default_cc/preprocessed.hpp
new file mode 100644
index 0000000..72666d0
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/pp_retag_default_cc/preprocessed.hpp
@@ -0,0 +1,59 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is guarded externally
+
+// this file has been generated from the master.hpp file in the same directory
+namespace boost { namespace function_types {
+namespace detail
+{
+template<class Tag, class RefTag> struct selector_bits
+{
+BOOST_STATIC_CONSTANT(bits_t, value = (
+(::boost::function_types::detail::bits<Tag> ::value & 0x00008000)
+| (::boost::function_types::detail::bits<RefTag> ::value & 802)
+));
+};
+template<bits_t SelectorBits> struct default_cc_tag;
+template<class Tag, class RefTag> struct retag_default_cc
+: detail::compound_tag
+< Tag, detail::default_cc_tag<
+::boost::function_types::detail::selector_bits<Tag,RefTag> ::value > >
+{ };
+template<bits_t SelectorBits> struct default_cc_tag
+{
+typedef null_tag::bits bits;
+typedef null_tag::mask mask;
+};
+class test_class;
+typedef constant<0x00ff8000> cc_mask_constant;
+template< > struct default_cc_tag<33282>
+{
+typedef void ( *tester)();
+typedef mpl::bitand_<components<tester> ::bits,cc_mask_constant> bits;
+typedef cc_mask_constant mask;
+};
+template< > struct default_cc_tag<33026>
+{
+typedef void ( *tester)( ... );
+typedef mpl::bitand_<components<tester> ::bits,cc_mask_constant> bits;
+typedef cc_mask_constant mask;
+};
+template< > struct default_cc_tag<33312>
+{
+typedef void (test_class:: *tester)();
+typedef mpl::bitand_<components<tester> ::bits,cc_mask_constant> bits;
+typedef cc_mask_constant mask;
+};
+template< > struct default_cc_tag<33056>
+{
+typedef void (test_class:: *tester)( ... );
+typedef mpl::bitand_<components<tester> ::bits,cc_mask_constant> bits;
+typedef cc_mask_constant mask;
+};
+} } }
diff --git a/3rdParty/Boost/src/boost/function_types/detail/pp_tags/cc_tag.hpp b/3rdParty/Boost/src/boost/function_types/detail/pp_tags/cc_tag.hpp
new file mode 100644
index 0000000..81f1d89
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/pp_tags/cc_tag.hpp
@@ -0,0 +1,17 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusions
+
+ struct BOOST_FT_cc_name
+ {
+ typedef detail::encode_bits<0,BOOST_FT_cc_id> bits;
+ typedef detail::constant<BOOST_FT_cc_mask> mask;
+ };
+
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/pp_tags/master.hpp b/3rdParty/Boost/src/boost/function_types/detail/pp_tags/master.hpp
new file mode 100644
index 0000000..9cce212
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/pp_tags/master.hpp
@@ -0,0 +1,126 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is guarded externally
+
+#ifdef __WAVE__
+// this file has been generated from the master.hpp file in the same directory
+# pragma wave option(preserve: 0)
+#endif
+
+#if !defined(BOOST_FT_PREPROCESSING_MODE) || defined(BOOST_FT_CONFIG_HPP_INCLUDED)
+# error "this file used with two-pass preprocessing, only"
+#endif
+
+#include <boost/preprocessor/slot/slot.hpp>
+#include <boost/function_types/detail/encoding/def.hpp>
+
+namespace boost { namespace function_types {
+
+typedef detail::property_tag<BOOST_FT_non_variadic,BOOST_FT_variadic_mask> non_variadic;
+typedef detail::property_tag<BOOST_FT_variadic,BOOST_FT_variadic_mask> variadic;
+
+typedef detail::property_tag<0,BOOST_FT_const> non_const;
+typedef detail::property_tag<BOOST_FT_const,BOOST_FT_const> const_qualified;
+
+typedef detail::property_tag<0,BOOST_FT_volatile> non_volatile;
+typedef detail::property_tag<BOOST_FT_volatile,BOOST_FT_volatile> volatile_qualified;
+
+typedef detail::property_tag<BOOST_FT_default_cc,BOOST_FT_cc_mask> default_cc;
+
+#define BOOST_PP_VALUE BOOST_FT_const|BOOST_FT_volatile
+#include BOOST_PP_ASSIGN_SLOT(1)
+
+typedef detail::property_tag<0 , BOOST_PP_SLOT(1)> non_cv;
+typedef detail::property_tag<BOOST_FT_const , BOOST_PP_SLOT(1)> const_non_volatile;
+typedef detail::property_tag<BOOST_FT_volatile, BOOST_PP_SLOT(1)> volatile_non_const;
+typedef detail::property_tag<BOOST_PP_SLOT(1) , BOOST_PP_SLOT(1)> cv_qualified;
+
+namespace detail {
+
+ typedef constant<BOOST_FT_full_mask> full_mask;
+
+ template <bits_t Flags, bits_t CCID> struct encode_bits_impl
+ {
+ BOOST_STATIC_CONSTANT( bits_t, value =
+ Flags | (BOOST_FT_default_cc * CCID) << 1 );
+ };
+
+ template <bits_t Flags, bits_t CCID, std::size_t Arity>
+ struct encode_charr_impl
+ {
+ BOOST_STATIC_CONSTANT(std::size_t, value = (std::size_t)(1+
+ Flags | (BOOST_FT_default_cc * CCID) << 1 | Arity << BOOST_FT_arity_shift
+ ));
+ };
+
+ template <bits_t Bits> struct decode_bits
+ {
+ BOOST_STATIC_CONSTANT(bits_t, flags = Bits & BOOST_FT_flags_mask);
+
+ BOOST_STATIC_CONSTANT(bits_t, cc_id =
+ ( (Bits & BOOST_FT_full_mask) / BOOST_FT_default_cc) >> 1
+ );
+
+ BOOST_STATIC_CONSTANT(bits_t, tag_bits = (Bits & BOOST_FT_full_mask));
+
+ BOOST_STATIC_CONSTANT(std::size_t, arity = (std::size_t)
+ (Bits >> BOOST_FT_arity_shift)
+ );
+ };
+
+ template <bits_t LHS_bits, bits_t LHS_mask, bits_t RHS_bits, bits_t RHS_mask>
+ struct tag_ice
+ {
+ BOOST_STATIC_CONSTANT(bool, match =
+ RHS_bits == (LHS_bits & RHS_mask & (RHS_bits |~BOOST_FT_type_mask))
+ );
+
+ BOOST_STATIC_CONSTANT(bits_t, combined_bits =
+ (LHS_bits & ~RHS_mask) | RHS_bits
+ );
+
+ BOOST_STATIC_CONSTANT(bits_t, combined_mask =
+ LHS_mask | RHS_mask
+ );
+
+ BOOST_STATIC_CONSTANT(bits_t, extracted_bits =
+ LHS_bits & RHS_mask
+ );
+
+ };
+
+#define BOOST_FT_mask BOOST_FT_type_mask
+ typedef property_tag<BOOST_FT_callable_builtin,BOOST_FT_mask> callable_builtin_tag;
+ typedef property_tag<BOOST_FT_non_member_callable_builtin,BOOST_FT_mask> nonmember_callable_builtin_tag;
+ typedef property_tag<BOOST_FT_function,BOOST_FT_mask> function_tag;
+ typedef property_tag<BOOST_FT_reference,BOOST_FT_mask> reference_tag;
+ typedef property_tag<BOOST_FT_pointer,BOOST_FT_mask> pointer_tag;
+ typedef property_tag<BOOST_FT_member_function_pointer,BOOST_FT_mask> member_function_pointer_tag;
+ typedef property_tag<BOOST_FT_member_object_pointer,BOOST_FT_mask> member_object_pointer_tag;
+ typedef property_tag<BOOST_FT_member_object_pointer_flags,BOOST_FT_full_mask> member_object_pointer_base;
+ typedef property_tag<BOOST_FT_member_pointer,BOOST_FT_mask> member_pointer_tag;
+#undef BOOST_FT_mask
+
+#define BOOST_PP_VALUE BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_default_cc
+#include BOOST_PP_ASSIGN_SLOT(1)
+#define BOOST_PP_VALUE BOOST_FT_type_mask|BOOST_FT_variadic_mask|BOOST_FT_cc_mask
+#include BOOST_PP_ASSIGN_SLOT(2)
+
+ typedef property_tag< BOOST_PP_SLOT(1) , BOOST_PP_SLOT(2) > nv_dcc_func;
+
+#define BOOST_PP_VALUE \
+ BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_default_cc
+#include BOOST_PP_ASSIGN_SLOT(1)
+
+ typedef property_tag< BOOST_PP_SLOT(1) , BOOST_PP_SLOT(2) > nv_dcc_mfp;
+
+} // namespace detail
+
+} } // namespace ::boost::function_types
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/pp_tags/preprocessed.hpp b/3rdParty/Boost/src/boost/function_types/detail/pp_tags/preprocessed.hpp
new file mode 100644
index 0000000..823c3cc
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/pp_tags/preprocessed.hpp
@@ -0,0 +1,77 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is guarded externally
+
+// this file has been generated from the master.hpp file in the same directory
+namespace boost { namespace function_types {
+typedef detail::property_tag<0x00000200,0x00000300> non_variadic;
+typedef detail::property_tag<0x00000100,0x00000300> variadic;
+typedef detail::property_tag<0,0x00000400> non_const;
+typedef detail::property_tag<0x00000400,0x00000400> const_qualified;
+typedef detail::property_tag<0,0x00000800> non_volatile;
+typedef detail::property_tag<0x00000800,0x00000800> volatile_qualified;
+typedef detail::property_tag<0x00008000,0x00ff8000> default_cc;
+typedef detail::property_tag<0 , 3072> non_cv;
+typedef detail::property_tag<0x00000400 , 3072> const_non_volatile;
+typedef detail::property_tag<0x00000800, 3072> volatile_non_const;
+typedef detail::property_tag<3072 , 3072> cv_qualified;
+namespace detail {
+typedef constant<0x00ff0fff> full_mask;
+template <bits_t Flags, bits_t CCID> struct encode_bits_impl
+{
+BOOST_STATIC_CONSTANT( bits_t, value =
+Flags | (0x00008000 * CCID) << 1 );
+};
+template <bits_t Flags, bits_t CCID, std::size_t Arity>
+struct encode_charr_impl
+{
+BOOST_STATIC_CONSTANT(std::size_t, value = (std::size_t)(1+
+Flags | (0x00008000 * CCID) << 1 | Arity << 24
+));
+};
+template <bits_t Bits> struct decode_bits
+{
+BOOST_STATIC_CONSTANT(bits_t, flags = Bits & 0x00000fff);
+BOOST_STATIC_CONSTANT(bits_t, cc_id =
+( (Bits & 0x00ff0fff) / 0x00008000) >> 1
+);
+BOOST_STATIC_CONSTANT(bits_t, tag_bits = (Bits & 0x00ff0fff));
+BOOST_STATIC_CONSTANT(std::size_t, arity = (std::size_t)
+(Bits >> 24)
+);
+};
+template <bits_t LHS_bits, bits_t LHS_mask, bits_t RHS_bits, bits_t RHS_mask>
+struct tag_ice
+{
+BOOST_STATIC_CONSTANT(bool, match =
+RHS_bits == (LHS_bits & RHS_mask & (RHS_bits | ~0x000000ff))
+);
+BOOST_STATIC_CONSTANT(bits_t, combined_bits =
+(LHS_bits & ~RHS_mask) | RHS_bits
+);
+BOOST_STATIC_CONSTANT(bits_t, combined_mask =
+LHS_mask | RHS_mask
+);
+BOOST_STATIC_CONSTANT(bits_t, extracted_bits =
+LHS_bits & RHS_mask
+);
+};
+typedef property_tag<0x00000001,0x000000ff> callable_builtin_tag;
+typedef property_tag<0x00000003,0x000000ff> nonmember_callable_builtin_tag;
+typedef property_tag<0x00000007,0x000000ff> function_tag;
+typedef property_tag<0x00000013,0x000000ff> reference_tag;
+typedef property_tag<0x0000000b,0x000000ff> pointer_tag;
+typedef property_tag<0x00000061,0x000000ff> member_function_pointer_tag;
+typedef property_tag<0x000000a3,0x000000ff> member_object_pointer_tag;
+typedef property_tag<0x000002a3,0x00ff0fff> member_object_pointer_base;
+typedef property_tag<0x00000020,0x000000ff> member_pointer_tag;
+typedef property_tag< 33287 , 16745471 > nv_dcc_func;
+typedef property_tag< 33377 , 16745471 > nv_dcc_mfp;
+}
+} }
diff --git a/3rdParty/Boost/src/boost/function_types/detail/pp_variate_loop/master.hpp b/3rdParty/Boost/src/boost/function_types/detail/pp_variate_loop/master.hpp
new file mode 100644
index 0000000..5026342
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/pp_variate_loop/master.hpp
@@ -0,0 +1,152 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+#ifdef __WAVE__
+// this file has been generated from the master.hpp file in the same directory
+# pragma wave option(preserve: 0)
+#endif
+
+#if !defined(BOOST_FT_PREPROCESSING_MODE)
+# error "this file is only for two-pass preprocessing"
+#endif
+
+#if !defined(BOOST_PP_VALUE)
+# include <boost/preprocessor/slot/slot.hpp>
+# include <boost/preprocessor/facilities/empty.hpp>
+# include <boost/preprocessor/facilities/expand.hpp>
+# include <boost/function_types/detail/encoding/def.hpp>
+
+BOOST_PP_EXPAND(#) define BOOST_FT_mfp 0
+BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function
+
+# define BOOST_PP_VALUE \
+ BOOST_FT_function|BOOST_FT_non_variadic
+# include __FILE__
+# define BOOST_PP_VALUE \
+ BOOST_FT_function|BOOST_FT_variadic
+# include __FILE__
+
+BOOST_PP_EXPAND(#) if !BOOST_FT_NO_CV_FUNC_SUPPORT
+# define BOOST_PP_VALUE \
+ BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_const
+# include __FILE__
+# define BOOST_PP_VALUE \
+ BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_const
+# include __FILE__
+# define BOOST_PP_VALUE \
+ BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_volatile
+# include __FILE__
+# define BOOST_PP_VALUE \
+ BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_volatile
+# include __FILE__
+# define BOOST_PP_VALUE \
+ BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_const|BOOST_FT_volatile
+# include __FILE__
+# define BOOST_PP_VALUE \
+ BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_const|BOOST_FT_volatile
+# include __FILE__
+BOOST_PP_EXPAND(#) endif
+
+
+BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
+BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function_pointer
+
+# define BOOST_PP_VALUE \
+ BOOST_FT_pointer|BOOST_FT_non_variadic
+# include __FILE__
+# define BOOST_PP_VALUE \
+ BOOST_FT_pointer|BOOST_FT_variadic
+# include __FILE__
+
+BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
+BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function_reference
+
+# define BOOST_PP_VALUE \
+ BOOST_FT_reference|BOOST_FT_non_variadic
+# include __FILE__
+# define BOOST_PP_VALUE \
+ BOOST_FT_reference|BOOST_FT_variadic
+# include __FILE__
+
+BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
+BOOST_PP_EXPAND(#) undef BOOST_FT_mfp
+
+BOOST_PP_EXPAND(#) define BOOST_FT_mfp 1
+BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_member_function_pointer
+
+# define BOOST_PP_VALUE \
+ BOOST_FT_member_function_pointer|BOOST_FT_non_variadic
+# include __FILE__
+# define BOOST_PP_VALUE \
+ BOOST_FT_member_function_pointer|BOOST_FT_variadic
+# include __FILE__
+# define BOOST_PP_VALUE \
+ BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_const
+# include __FILE__
+# define BOOST_PP_VALUE \
+ BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_const
+# include __FILE__
+# define BOOST_PP_VALUE \
+ BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_volatile
+# include __FILE__
+# define BOOST_PP_VALUE \
+ BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_volatile
+# include __FILE__
+# define BOOST_PP_VALUE \
+ BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_const|BOOST_FT_volatile
+# include __FILE__
+# define BOOST_PP_VALUE \
+ BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_const|BOOST_FT_volatile
+# include __FILE__
+
+BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
+BOOST_PP_EXPAND(#) undef BOOST_FT_mfp
+
+# include <boost/function_types/detail/encoding/undef.hpp>
+#else
+
+# include BOOST_PP_ASSIGN_SLOT(1)
+
+# define BOOST_PP_VALUE BOOST_PP_SLOT(1) & BOOST_FT_kind_mask
+# include BOOST_PP_ASSIGN_SLOT(2)
+
+BOOST_PP_EXPAND(#) if !!(BOOST_PP_SLOT(2) & (BOOST_FT_variations))
+BOOST_PP_EXPAND(#) if (BOOST_PP_SLOT(1) & (BOOST_FT_cond)) == (BOOST_FT_cond)
+
+# if ( BOOST_PP_SLOT(1) & (BOOST_FT_variadic) )
+BOOST_PP_EXPAND(#) define BOOST_FT_ell ...
+BOOST_PP_EXPAND(#) define BOOST_FT_nullary_param
+# else
+BOOST_PP_EXPAND(#) define BOOST_FT_ell
+BOOST_PP_EXPAND(#) define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
+# endif
+
+# if !( BOOST_PP_SLOT(1) & (BOOST_FT_volatile) )
+# if !( BOOST_PP_SLOT(1) & (BOOST_FT_const) )
+BOOST_PP_EXPAND(#) define BOOST_FT_cv
+# else
+BOOST_PP_EXPAND(#) define BOOST_FT_cv const
+# endif
+# else
+# if !( BOOST_PP_SLOT(1) & (BOOST_FT_const) )
+BOOST_PP_EXPAND(#) define BOOST_FT_cv volatile
+# else
+BOOST_PP_EXPAND(#) define BOOST_FT_cv const volatile
+# endif
+# endif
+BOOST_PP_EXPAND(#) define BOOST_FT_flags BOOST_PP_SLOT(1)
+BOOST_PP_EXPAND(#) include BOOST_FT_variate_file
+
+BOOST_PP_EXPAND(#) undef BOOST_FT_cv
+BOOST_PP_EXPAND(#) undef BOOST_FT_ell
+BOOST_PP_EXPAND(#) undef BOOST_FT_nullary_param
+BOOST_PP_EXPAND(#) undef BOOST_FT_flags
+BOOST_PP_EXPAND(#) endif
+BOOST_PP_EXPAND(#) endif
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/pp_variate_loop/preprocessed.hpp b/3rdParty/Boost/src/boost/function_types/detail/pp_variate_loop/preprocessed.hpp
new file mode 100644
index 0000000..7e7c4f9
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/pp_variate_loop/preprocessed.hpp
@@ -0,0 +1,283 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// this file has been generated from the master.hpp file in the same directory
+# define BOOST_FT_mfp 0
+# define BOOST_FT_syntax BOOST_FT_type_function
+# if ! ! (4 & (BOOST_FT_variations))
+# if (519 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell
+# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
+# define BOOST_FT_cv
+# define BOOST_FT_flags 519
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if ! ! (4 & (BOOST_FT_variations))
+# if (263 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell ...
+# define BOOST_FT_nullary_param
+# define BOOST_FT_cv
+# define BOOST_FT_flags 263
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if !BOOST_FT_NO_CV_FUNC_SUPPORT
+# if ! ! (4 & (BOOST_FT_variations))
+# if (1543 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell
+# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
+# define BOOST_FT_cv const
+# define BOOST_FT_flags 1543
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if ! ! (4 & (BOOST_FT_variations))
+# if (1287 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell ...
+# define BOOST_FT_nullary_param
+# define BOOST_FT_cv const
+# define BOOST_FT_flags 1287
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if ! ! (4 & (BOOST_FT_variations))
+# if (2567 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell
+# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
+# define BOOST_FT_cv volatile
+# define BOOST_FT_flags 2567
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if ! ! (4 & (BOOST_FT_variations))
+# if (2311 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell ...
+# define BOOST_FT_nullary_param
+# define BOOST_FT_cv volatile
+# define BOOST_FT_flags 2311
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if ! ! (4 & (BOOST_FT_variations))
+# if (3591 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell
+# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
+# define BOOST_FT_cv const volatile
+# define BOOST_FT_flags 3591
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if ! ! (4 & (BOOST_FT_variations))
+# if (3335 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell ...
+# define BOOST_FT_nullary_param
+# define BOOST_FT_cv const volatile
+# define BOOST_FT_flags 3335
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# endif
+# undef BOOST_FT_syntax
+# define BOOST_FT_syntax BOOST_FT_type_function_pointer
+# if ! ! (8 & (BOOST_FT_variations))
+# if (523 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell
+# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
+# define BOOST_FT_cv
+# define BOOST_FT_flags 523
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if ! ! (8 & (BOOST_FT_variations))
+# if (267 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell ...
+# define BOOST_FT_nullary_param
+# define BOOST_FT_cv
+# define BOOST_FT_flags 267
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# undef BOOST_FT_syntax
+# define BOOST_FT_syntax BOOST_FT_type_function_reference
+# if ! ! (16 & (BOOST_FT_variations))
+# if (531 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell
+# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
+# define BOOST_FT_cv
+# define BOOST_FT_flags 531
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if ! ! (16 & (BOOST_FT_variations))
+# if (275 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell ...
+# define BOOST_FT_nullary_param
+# define BOOST_FT_cv
+# define BOOST_FT_flags 275
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# undef BOOST_FT_syntax
+# undef BOOST_FT_mfp
+# define BOOST_FT_mfp 1
+# define BOOST_FT_syntax BOOST_FT_type_member_function_pointer
+# if ! ! (96 & (BOOST_FT_variations))
+# if (609 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell
+# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
+# define BOOST_FT_cv
+# define BOOST_FT_flags 609
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if ! ! (96 & (BOOST_FT_variations))
+# if (353 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell ...
+# define BOOST_FT_nullary_param
+# define BOOST_FT_cv
+# define BOOST_FT_flags 353
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if ! ! (96 & (BOOST_FT_variations))
+# if (1633 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell
+# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
+# define BOOST_FT_cv const
+# define BOOST_FT_flags 1633
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if ! ! (96 & (BOOST_FT_variations))
+# if (1377 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell ...
+# define BOOST_FT_nullary_param
+# define BOOST_FT_cv const
+# define BOOST_FT_flags 1377
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if ! ! (96 & (BOOST_FT_variations))
+# if (2657 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell
+# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
+# define BOOST_FT_cv volatile
+# define BOOST_FT_flags 2657
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if ! ! (96 & (BOOST_FT_variations))
+# if (2401 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell ...
+# define BOOST_FT_nullary_param
+# define BOOST_FT_cv volatile
+# define BOOST_FT_flags 2401
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if ! ! (96 & (BOOST_FT_variations))
+# if (3681 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell
+# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
+# define BOOST_FT_cv const volatile
+# define BOOST_FT_flags 3681
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# if ! ! (96 & (BOOST_FT_variations))
+# if (3425 & (BOOST_FT_cond)) == (BOOST_FT_cond)
+# define BOOST_FT_ell ...
+# define BOOST_FT_nullary_param
+# define BOOST_FT_cv const volatile
+# define BOOST_FT_flags 3425
+# include BOOST_FT_variate_file
+# undef BOOST_FT_cv
+# undef BOOST_FT_ell
+# undef BOOST_FT_nullary_param
+# undef BOOST_FT_flags
+# endif
+# endif
+# undef BOOST_FT_syntax
+# undef BOOST_FT_mfp
diff --git a/3rdParty/Boost/src/boost/function_types/detail/retag_default_cc.hpp b/3rdParty/Boost/src/boost/function_types/detail/retag_default_cc.hpp
new file mode 100644
index 0000000..c8926f6
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/retag_default_cc.hpp
@@ -0,0 +1,23 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+#ifndef BOOST_FT_DETAIL_RETAG_DEFAULT_CC_HPP_INCLUDED
+#define BOOST_FT_DETAIL_RETAG_DEFAULT_CC_HPP_INCLUDED
+
+#include <boost/mpl/bitand.hpp>
+
+#include <boost/function_types/components.hpp>
+
+#if defined(BOOST_FT_PREPROCESSING_MODE)
+# include <boost/function_types/detail/pp_retag_default_cc/master.hpp>
+#else
+# include <boost/function_types/detail/pp_retag_default_cc/preprocessed.hpp>
+#endif
+
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/synthesize.hpp b/3rdParty/Boost/src/boost/function_types/detail/synthesize.hpp
new file mode 100644
index 0000000..0b15cbb
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/synthesize.hpp
@@ -0,0 +1,79 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+#ifndef BOOST_FT_DETAIL_SYNTHESIZE_HPP_INCLUDED
+#define BOOST_FT_DETAIL_SYNTHESIZE_HPP_INCLUDED
+
+#include <cstddef>
+
+#include <boost/mpl/at.hpp>
+#include <boost/mpl/size.hpp>
+
+#include <boost/function_types/config/config.hpp>
+#include <boost/function_types/property_tags.hpp>
+#include <boost/function_types/detail/cv_traits.hpp>
+#include <boost/function_types/detail/retag_default_cc.hpp>
+
+namespace boost { namespace function_types { namespace detail {
+
+template<bits_t Flags, bits_t CCID, std::size_t Size>
+struct synthesize_impl_o
+{
+ template<typename Seq> struct synthesize_impl_i { };
+};
+
+template<typename Seq, bits_t Bits>
+struct synthesize_impl
+ : detail::synthesize_impl_o
+ < ::boost::function_types::detail::decode_bits<Bits>::flags
+ , ::boost::function_types::detail::decode_bits<Bits>::cc_id
+ , ::boost::mpl::size<Seq>::value
+ >
+ ::template synthesize_impl_i<Seq>
+{ };
+
+template<typename Seq, typename Tag>
+struct synthesize_func
+ : detail::synthesize_impl
+ < Seq
+ , ::boost::function_types::detail::bits
+ < detail::retag_default_cc
+ < function_types::tag<nv_dcc_func, Tag> >
+ >::value
+ >
+{ };
+
+template<typename Seq, typename Tag>
+struct synthesize_mfp
+ : detail::synthesize_impl
+ < Seq
+ , ::boost::function_types::detail::bits
+ < detail::retag_default_cc
+ < function_types::tag
+ < typename detail::cv_traits< typename mpl::at_c<Seq,1>::type >::tag
+ , nv_dcc_mfp, Tag
+ > >
+ >::value
+ >
+{ };
+
+template<typename S, typename R = typename mpl::at_c<S,0>::type,
+ typename C = typename mpl::at_c<S,1>::type>
+struct synthesize_mop
+{
+ typedef R C::* type;
+};
+
+#define BOOST_FT_variations BOOST_FT_function|BOOST_FT_member_pointer
+#define BOOST_FT_al_path boost/function_types/detail/synthesize_impl
+#include <boost/function_types/detail/pp_loop.hpp>
+
+} } } // namespace ::boost::function_types::detail
+
+#endif
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity10_0.hpp b/3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity10_0.hpp
new file mode 100644
index 0000000..ad22e50
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity10_0.hpp
@@ -0,0 +1,334 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
+# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
+template< typename R >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,0)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (BOOST_FT_nullary_param BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 1 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,0)
+< typename mpl::deref< iter_0 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,1)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 2 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,1)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,2)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 3 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,2)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,3)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 4 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,3)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,4)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 5 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,4)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,5)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 6 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,5)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,6)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 7 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,6)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,7)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 8 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,7)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,8)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 9 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+typedef typename mpl::next< iter_7 > ::type iter_8;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,8)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+, typename mpl::deref< iter_8 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,9)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 10 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+typedef typename mpl::next< iter_7 > ::type iter_8;
+typedef typename mpl::next< iter_8 > ::type iter_9;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,9)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+, typename mpl::deref< iter_8 > ::type
+, typename mpl::deref< iter_9 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,10)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 11 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+typedef typename mpl::next< iter_7 > ::type iter_8;
+typedef typename mpl::next< iter_8 > ::type iter_9;
+typedef typename mpl::next< iter_9 > ::type iter_10;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,10)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+, typename mpl::deref< iter_8 > ::type
+, typename mpl::deref< iter_9 > ::type
+, typename mpl::deref< iter_10 > ::type
+> ::type type;
+};
+};
+# undef BOOST_FT_make_type
+# undef BOOST_FT_make_type_impl
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity10_1.hpp b/3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity10_1.hpp
new file mode 100644
index 0000000..bbd5963
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity10_1.hpp
@@ -0,0 +1,326 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
+# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
+template< typename R , typename T0 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,1)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) ( BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 2 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,1)
+< typename mpl::deref< iter_0 > ::type
+, typename detail::cv_traits<
+typename mpl::deref< iter_1 > ::type > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,2)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 3 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,2)
+< typename mpl::deref< iter_0 > ::type
+, typename detail::cv_traits<
+typename mpl::deref< iter_1 > ::type > ::type
+, typename mpl::deref< iter_2 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,3)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 4 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,3)
+< typename mpl::deref< iter_0 > ::type
+, typename detail::cv_traits<
+typename mpl::deref< iter_1 > ::type > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,4)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 5 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,4)
+< typename mpl::deref< iter_0 > ::type
+, typename detail::cv_traits<
+typename mpl::deref< iter_1 > ::type > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,5)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 6 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,5)
+< typename mpl::deref< iter_0 > ::type
+, typename detail::cv_traits<
+typename mpl::deref< iter_1 > ::type > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,6)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 7 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,6)
+< typename mpl::deref< iter_0 > ::type
+, typename detail::cv_traits<
+typename mpl::deref< iter_1 > ::type > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,7)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 8 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,7)
+< typename mpl::deref< iter_0 > ::type
+, typename detail::cv_traits<
+typename mpl::deref< iter_1 > ::type > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,8)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 9 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+typedef typename mpl::next< iter_7 > ::type iter_8;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,8)
+< typename mpl::deref< iter_0 > ::type
+, typename detail::cv_traits<
+typename mpl::deref< iter_1 > ::type > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+, typename mpl::deref< iter_8 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,9)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 10 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+typedef typename mpl::next< iter_7 > ::type iter_8;
+typedef typename mpl::next< iter_8 > ::type iter_9;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,9)
+< typename mpl::deref< iter_0 > ::type
+, typename detail::cv_traits<
+typename mpl::deref< iter_1 > ::type > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+, typename mpl::deref< iter_8 > ::type
+, typename mpl::deref< iter_9 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,10)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 11 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+typedef typename mpl::next< iter_7 > ::type iter_8;
+typedef typename mpl::next< iter_8 > ::type iter_9;
+typedef typename mpl::next< iter_9 > ::type iter_10;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,10)
+< typename mpl::deref< iter_0 > ::type
+, typename detail::cv_traits<
+typename mpl::deref< iter_1 > ::type > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+, typename mpl::deref< iter_8 > ::type
+, typename mpl::deref< iter_9 > ::type
+, typename mpl::deref< iter_10 > ::type
+> ::type type;
+};
+};
+# undef BOOST_FT_make_type
+# undef BOOST_FT_make_type_impl
+
diff --git a/3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity20_0.hpp b/3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity20_0.hpp
new file mode 100644
index 0000000..cb62e69
--- /dev/null
+++ b/3rdParty/Boost/src/boost/function_types/detail/synthesize_impl/arity20_0.hpp
@@ -0,0 +1,517 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input: BOOST_FT_syntax type macro to use
+// input: BOOST_FT_cc empty or cc specifier
+// input: BOOST_FT_ell empty or "..."
+// input: BOOST_FT_cv empty or cv qualifiers
+// input: BOOST_FT_flags single decimal integer encoding the flags
+// output: BOOST_FT_n number of component types (arity+1)
+// output: BOOST_FT_arity current arity
+// output: BOOST_FT_type macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p) parameters with given prefix
+
+# include <boost/function_types/detail/synthesize_impl/arity10_0.hpp>
+# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
+# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,11)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 12 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+typedef typename mpl::next< iter_7 > ::type iter_8;
+typedef typename mpl::next< iter_8 > ::type iter_9;
+typedef typename mpl::next< iter_9 > ::type iter_10;
+typedef typename mpl::next< iter_10 > ::type iter_11;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,11)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+, typename mpl::deref< iter_8 > ::type
+, typename mpl::deref< iter_9 > ::type
+, typename mpl::deref< iter_10 > ::type
+, typename mpl::deref< iter_11 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,12)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 13 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+typedef typename mpl::next< iter_7 > ::type iter_8;
+typedef typename mpl::next< iter_8 > ::type iter_9;
+typedef typename mpl::next< iter_9 > ::type iter_10;
+typedef typename mpl::next< iter_10 > ::type iter_11;
+typedef typename mpl::next< iter_11 > ::type iter_12;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,12)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+, typename mpl::deref< iter_8 > ::type
+, typename mpl::deref< iter_9 > ::type
+, typename mpl::deref< iter_10 > ::type
+, typename mpl::deref< iter_11 > ::type
+, typename mpl::deref< iter_12 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,13)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 14 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+typedef typename mpl::next< iter_7 > ::type iter_8;
+typedef typename mpl::next< iter_8 > ::type iter_9;
+typedef typename mpl::next< iter_9 > ::type iter_10;
+typedef typename mpl::next< iter_10 > ::type iter_11;
+typedef typename mpl::next< iter_11 > ::type iter_12;
+typedef typename mpl::next< iter_12 > ::type iter_13;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,13)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+, typename mpl::deref< iter_8 > ::type
+, typename mpl::deref< iter_9 > ::type
+, typename mpl::deref< iter_10 > ::type
+, typename mpl::deref< iter_11 > ::type
+, typename mpl::deref< iter_12 > ::type
+, typename mpl::deref< iter_13 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,14)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 15 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+typedef typename mpl::next< iter_7 > ::type iter_8;
+typedef typename mpl::next< iter_8 > ::type iter_9;
+typedef typename mpl::next< iter_9 > ::type iter_10;
+typedef typename mpl::next< iter_10 > ::type iter_11;
+typedef typename mpl::next< iter_11 > ::type iter_12;
+typedef typename mpl::next< iter_12 > ::type iter_13;
+typedef typename mpl::next< iter_13 > ::type iter_14;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,14)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+, typename mpl::deref< iter_8 > ::type
+, typename mpl::deref< iter_9 > ::type
+, typename mpl::deref< iter_10 > ::type
+, typename mpl::deref< iter_11 > ::type
+, typename mpl::deref< iter_12 > ::type
+, typename mpl::deref< iter_13 > ::type
+, typename mpl::deref< iter_14 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,15)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 16 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+typedef typename mpl::next< iter_7 > ::type iter_8;
+typedef typename mpl::next< iter_8 > ::type iter_9;
+typedef typename mpl::next< iter_9 > ::type iter_10;
+typedef typename mpl::next< iter_10 > ::type iter_11;
+typedef typename mpl::next< iter_11 > ::type iter_12;
+typedef typename mpl::next< iter_12 > ::type iter_13;
+typedef typename mpl::next< iter_13 > ::type iter_14;
+typedef typename mpl::next< iter_14 > ::type iter_15;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,15)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+, typename mpl::deref< iter_8 > ::type
+, typename mpl::deref< iter_9 > ::type
+, typename mpl::deref< iter_10 > ::type
+, typename mpl::deref< iter_11 > ::type
+, typename mpl::deref< iter_12 > ::type
+, typename mpl::deref< iter_13 > ::type
+, typename mpl::deref< iter_14 > ::type
+, typename mpl::deref< iter_15 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,16)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 17 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+typedef typename mpl::next< iter_7 > ::type iter_8;
+typedef typename mpl::next< iter_8 > ::type iter_9;
+typedef typename mpl::next< iter_9 > ::type iter_10;
+typedef typename mpl::next< iter_10 > ::type iter_11;
+typedef typename mpl::next< iter_11 > ::type iter_12;
+typedef typename mpl::next< iter_12 > ::type iter_13;
+typedef typename mpl::next< iter_13 > ::type iter_14;
+typedef typename mpl::next< iter_14 > ::type iter_15;
+typedef typename mpl::next< iter_15 > ::type iter_16;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,16)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+, typename mpl::deref< iter_8 > ::type
+, typename mpl::deref< iter_9 > ::type
+, typename mpl::deref< iter_10 > ::type
+, typename mpl::deref< iter_11 > ::type
+, typename mpl::deref< iter_12 > ::type
+, typename mpl::deref< iter_13 > ::type
+, typename mpl::deref< iter_14 > ::type
+, typename mpl::deref< iter_15 > ::type
+, typename mpl::deref< iter_16 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,17)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 18 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+typedef typename mpl::next< iter_7 > ::type iter_8;
+typedef typename mpl::next< iter_8 > ::type iter_9;
+typedef typename mpl::next< iter_9 > ::type iter_10;
+typedef typename mpl::next< iter_10 > ::type iter_11;
+typedef typename mpl::next< iter_11 > ::type iter_12;
+typedef typename mpl::next< iter_12 > ::type iter_13;
+typedef typename mpl::next< iter_13 > ::type iter_14;
+typedef typename mpl::next< iter_14 > ::type iter_15;
+typedef typename mpl::next< iter_15 > ::type iter_16;
+typedef typename mpl::next< iter_16 > ::type iter_17;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,17)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+, typename mpl::deref< iter_8 > ::type
+, typename mpl::deref< iter_9 > ::type
+, typename mpl::deref< iter_10 > ::type
+, typename mpl::deref< iter_11 > ::type
+, typename mpl::deref< iter_12 > ::type
+, typename mpl::deref< iter_13 > ::type
+, typename mpl::deref< iter_14 > ::type
+, typename mpl::deref< iter_15 > ::type
+, typename mpl::deref< iter_16 > ::type
+, typename mpl::deref< iter_17 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,18)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 19 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+typedef typename mpl::next< iter_7 > ::type iter_8;
+typedef typename mpl::next< iter_8 > ::type iter_9;
+typedef typename mpl::next< iter_9 > ::type iter_10;
+typedef typename mpl::next< iter_10 > ::type iter_11;
+typedef typename mpl::next< iter_11 > ::type iter_12;
+typedef typename mpl::next< iter_12 > ::type iter_13;
+typedef typename mpl::next< iter_13 > ::type iter_14;
+typedef typename mpl::next< iter_14 > ::type iter_15;
+typedef typename mpl::next< iter_15 > ::type iter_16;
+typedef typename mpl::next< iter_16 > ::type iter_17;
+typedef typename mpl::next< iter_17 > ::type iter_18;
+public:
+typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,18)
+< typename mpl::deref< iter_0 > ::type
+, typename mpl::deref< iter_1 > ::type
+, typename mpl::deref< iter_2 > ::type
+, typename mpl::deref< iter_3 > ::type
+, typename mpl::deref< iter_4 > ::type
+, typename mpl::deref< iter_5 > ::type
+, typename mpl::deref< iter_6 > ::type
+, typename mpl::deref< iter_7 > ::type
+, typename mpl::deref< iter_8 > ::type
+, typename mpl::deref< iter_9 > ::type
+, typename mpl::deref< iter_10 > ::type
+, typename mpl::deref< iter_11 > ::type
+, typename mpl::deref< iter_12 > ::type
+, typename mpl::deref< iter_13 > ::type
+, typename mpl::deref< iter_14 > ::type
+, typename mpl::deref< iter_15 > ::type
+, typename mpl::deref< iter_16 > ::type
+, typename mpl::deref< iter_17 > ::type
+, typename mpl::deref< iter_18 > ::type
+> ::type type;
+};
+};
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
+struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,19)
+{
+typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv ;
+};
+template< >
+struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 20 >
+{
+template<typename S> struct synthesize_impl_i
+{
+private:
+typedef typename mpl::begin<S> ::type iter_0;
+typedef typename mpl::next< iter_0 > ::type iter_1;
+typedef typename mpl::next< iter_1 > ::type iter_2;
+typedef typename mpl::next< iter_2 > ::type iter_3;
+typedef typename mpl::next< iter_3 > ::type iter_4;
+typedef typename mpl::next< iter_4 > ::type iter_5;
+typedef typename mpl::next< iter_5 > ::type iter_6;
+typedef typename mpl::next< iter_6 > ::type iter_7;
+typedef typename mpl::next< iter_7 > ::type iter_8;
+typedef typename mpl::next< iter_8 > ::type iter_9;
+typedef typename mpl::next< iter_9 > ::type iter_10;<