summaryrefslogtreecommitdiff
path: root/boost/fusion
diff options
context:
space:
mode:
Diffstat (limited to 'boost/fusion')
-rw-r--r--boost/fusion/adapted/adt/adapt_adt.hpp29
-rw-r--r--boost/fusion/adapted/adt/adapt_assoc_adt.hpp26
-rw-r--r--boost/fusion/adapted/adt/detail/adapt_base.hpp128
-rw-r--r--boost/fusion/adapted/adt/detail/adapt_base_assoc_attr_filler.hpp61
-rw-r--r--boost/fusion/adapted/adt/detail/adapt_base_attr_filler.hpp90
-rw-r--r--boost/fusion/adapted/adt/detail/extension.hpp6
-rw-r--r--boost/fusion/adapted/array/at_impl.hpp2
-rw-r--r--boost/fusion/adapted/array/begin_impl.hpp2
-rw-r--r--boost/fusion/adapted/array/deref_impl.hpp2
-rw-r--r--boost/fusion/adapted/array/end_impl.hpp2
-rw-r--r--boost/fusion/adapted/boost_array/array_iterator.hpp17
-rw-r--r--boost/fusion/adapted/boost_array/detail/at_impl.hpp4
-rw-r--r--boost/fusion/adapted/boost_array/detail/begin_impl.hpp6
-rw-r--r--boost/fusion/adapted/boost_array/detail/end_impl.hpp6
-rw-r--r--boost/fusion/adapted/boost_tuple.hpp2
-rw-r--r--boost/fusion/adapted/boost_tuple/boost_tuple_iterator.hpp29
-rw-r--r--boost/fusion/adapted/boost_tuple/detail/build_cons.hpp59
-rw-r--r--boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp50
-rw-r--r--boost/fusion/adapted/boost_tuple/mpl/clear.hpp23
-rw-r--r--boost/fusion/adapted/mpl/detail/at_impl.hpp2
-rw-r--r--boost/fusion/adapted/mpl/detail/begin_impl.hpp2
-rw-r--r--boost/fusion/adapted/mpl/detail/end_impl.hpp2
-rw-r--r--boost/fusion/adapted/mpl/mpl_iterator.hpp19
-rw-r--r--boost/fusion/adapted/std_tuple.hpp2
-rw-r--r--boost/fusion/adapted/std_tuple/detail/at_impl.hpp2
-rw-r--r--boost/fusion/adapted/std_tuple/detail/begin_impl.hpp2
-rw-r--r--boost/fusion/adapted/std_tuple/detail/build_std_tuple.hpp105
-rw-r--r--boost/fusion/adapted/std_tuple/detail/convert_impl.hpp48
-rw-r--r--boost/fusion/adapted/std_tuple/detail/end_impl.hpp2
-rw-r--r--boost/fusion/adapted/std_tuple/mpl/clear.hpp23
-rw-r--r--boost/fusion/adapted/std_tuple/std_tuple_iterator.hpp18
-rw-r--r--boost/fusion/adapted/struct/adapt_assoc_struct.hpp28
-rw-r--r--boost/fusion/adapted/struct/adapt_struct.hpp127
-rw-r--r--boost/fusion/adapted/struct/adapt_struct_named.hpp53
-rw-r--r--boost/fusion/adapted/struct/define_assoc_struct.hpp11
-rw-r--r--boost/fusion/adapted/struct/define_struct.hpp4
-rw-r--r--boost/fusion/adapted/struct/detail/adapt_auto.hpp (renamed from boost/fusion/include/adapt_assoc_class_named.hpp)11
-rw-r--r--boost/fusion/adapted/struct/detail/adapt_base.hpp85
-rw-r--r--boost/fusion/adapted/struct/detail/adapt_base_assoc_attr_filler.hpp63
-rw-r--r--boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp64
-rw-r--r--boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp14
-rw-r--r--boost/fusion/adapted/struct/detail/begin_impl.hpp4
-rw-r--r--boost/fusion/adapted/struct/detail/define_struct.hpp27
-rw-r--r--boost/fusion/adapted/struct/detail/define_struct_inline.hpp29
-rw-r--r--boost/fusion/adapted/struct/detail/deref_impl.hpp5
-rw-r--r--boost/fusion/adapted/struct/detail/end_impl.hpp4
-rw-r--r--boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp41
-rw-r--r--boost/fusion/adapted/struct/detail/proxy_type.hpp4
-rw-r--r--boost/fusion/algorithm/auxiliary.hpp3
-rw-r--r--boost/fusion/algorithm/auxiliary/copy.hpp30
-rw-r--r--boost/fusion/algorithm/auxiliary/move.hpp32
-rw-r--r--boost/fusion/algorithm/iteration/accumulate.hpp10
-rw-r--r--boost/fusion/algorithm/iteration/accumulate_fwd.hpp8
-rw-r--r--boost/fusion/algorithm/iteration/detail/fold.hpp153
-rw-r--r--boost/fusion/algorithm/iteration/detail/for_each.hpp22
-rw-r--r--boost/fusion/algorithm/iteration/detail/preprocessed/fold.hpp138
-rw-r--r--boost/fusion/algorithm/iteration/detail/preprocessed/iter_fold.hpp138
-rw-r--r--boost/fusion/algorithm/iteration/detail/preprocessed/reverse_fold.hpp138
-rw-r--r--boost/fusion/algorithm/iteration/detail/preprocessed/reverse_iter_fold.hpp138
-rw-r--r--boost/fusion/algorithm/iteration/detail/segmented_fold.hpp6
-rw-r--r--boost/fusion/algorithm/iteration/detail/segmented_for_each.hpp6
-rw-r--r--boost/fusion/algorithm/iteration/fold.hpp1
-rw-r--r--boost/fusion/algorithm/iteration/fold_fwd.hpp16
-rw-r--r--boost/fusion/algorithm/iteration/for_each.hpp10
-rw-r--r--boost/fusion/algorithm/iteration/for_each_fwd.hpp10
-rw-r--r--boost/fusion/algorithm/iteration/iter_fold.hpp2
-rw-r--r--boost/fusion/algorithm/iteration/iter_fold_fwd.hpp16
-rw-r--r--boost/fusion/algorithm/iteration/reverse_fold_fwd.hpp16
-rw-r--r--boost/fusion/algorithm/iteration/reverse_iter_fold_fwd.hpp16
-rw-r--r--boost/fusion/algorithm/query/all.hpp2
-rw-r--r--boost/fusion/algorithm/query/any.hpp2
-rw-r--r--boost/fusion/algorithm/query/count.hpp5
-rw-r--r--boost/fusion/algorithm/query/count_if.hpp5
-rw-r--r--boost/fusion/algorithm/query/detail/all.hpp32
-rw-r--r--boost/fusion/algorithm/query/detail/any.hpp32
-rw-r--r--boost/fusion/algorithm/query/detail/count.hpp14
-rw-r--r--boost/fusion/algorithm/query/detail/count_if.hpp20
-rw-r--r--boost/fusion/algorithm/query/detail/find_if.hpp14
-rw-r--r--boost/fusion/algorithm/query/detail/segmented_find.hpp8
-rw-r--r--boost/fusion/algorithm/query/detail/segmented_find_if.hpp8
-rw-r--r--boost/fusion/algorithm/query/find.hpp6
-rw-r--r--boost/fusion/algorithm/query/find_fwd.hpp6
-rw-r--r--boost/fusion/algorithm/query/find_if.hpp6
-rw-r--r--boost/fusion/algorithm/query/find_if_fwd.hpp8
-rw-r--r--boost/fusion/algorithm/query/none.hpp2
-rw-r--r--boost/fusion/algorithm/transformation/clear.hpp2
-rw-r--r--boost/fusion/algorithm/transformation/detail/preprocessed/zip10.hpp18
-rw-r--r--boost/fusion/algorithm/transformation/detail/preprocessed/zip20.hpp38
-rw-r--r--boost/fusion/algorithm/transformation/detail/preprocessed/zip30.hpp58
-rw-r--r--boost/fusion/algorithm/transformation/detail/preprocessed/zip40.hpp78
-rw-r--r--boost/fusion/algorithm/transformation/detail/preprocessed/zip50.hpp98
-rw-r--r--boost/fusion/algorithm/transformation/detail/replace.hpp10
-rw-r--r--boost/fusion/algorithm/transformation/detail/replace_if.hpp10
-rw-r--r--boost/fusion/algorithm/transformation/erase.hpp20
-rw-r--r--boost/fusion/algorithm/transformation/erase_key.hpp2
-rw-r--r--boost/fusion/algorithm/transformation/filter.hpp4
-rw-r--r--boost/fusion/algorithm/transformation/filter_if.hpp4
-rw-r--r--boost/fusion/algorithm/transformation/flatten.hpp4
-rw-r--r--boost/fusion/algorithm/transformation/insert.hpp5
-rw-r--r--boost/fusion/algorithm/transformation/insert_range.hpp2
-rw-r--r--boost/fusion/algorithm/transformation/join.hpp2
-rw-r--r--boost/fusion/algorithm/transformation/pop_back.hpp10
-rw-r--r--boost/fusion/algorithm/transformation/pop_front.hpp6
-rw-r--r--boost/fusion/algorithm/transformation/push_back.hpp5
-rw-r--r--boost/fusion/algorithm/transformation/push_front.hpp5
-rw-r--r--boost/fusion/algorithm/transformation/remove.hpp2
-rw-r--r--boost/fusion/algorithm/transformation/remove_if.hpp2
-rw-r--r--boost/fusion/algorithm/transformation/replace.hpp5
-rw-r--r--boost/fusion/algorithm/transformation/replace_if.hpp5
-rw-r--r--boost/fusion/algorithm/transformation/reverse.hpp5
-rw-r--r--boost/fusion/algorithm/transformation/transform.hpp4
-rw-r--r--boost/fusion/algorithm/transformation/zip.hpp2
-rw-r--r--boost/fusion/container/deque/back_extended_deque.hpp9
-rw-r--r--boost/fusion/container/deque/convert.hpp4
-rw-r--r--boost/fusion/container/deque/deque.hpp81
-rw-r--r--boost/fusion/container/deque/deque_fwd.hpp14
-rw-r--r--boost/fusion/container/deque/deque_iterator.hpp22
-rw-r--r--boost/fusion/container/deque/detail/at_impl.hpp2
-rw-r--r--boost/fusion/container/deque/detail/begin_impl.hpp13
-rw-r--r--boost/fusion/container/deque/detail/build_deque.hpp6
-rw-r--r--boost/fusion/container/deque/detail/convert_impl.hpp3
-rw-r--r--boost/fusion/container/deque/detail/cpp03/as_deque.hpp11
-rw-r--r--boost/fusion/container/deque/detail/cpp03/build_deque.hpp4
-rw-r--r--boost/fusion/container/deque/detail/cpp03/deque.hpp50
-rw-r--r--boost/fusion/container/deque/detail/cpp03/deque_forward_ctor.hpp10
-rw-r--r--boost/fusion/container/deque/detail/cpp03/deque_keyed_values.hpp4
-rw-r--r--boost/fusion/container/deque/detail/cpp03/deque_keyed_values_call.hpp10
-rw-r--r--boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque10.hpp22
-rw-r--r--boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque20.hpp42
-rw-r--r--boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque30.hpp62
-rw-r--r--boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque40.hpp82
-rw-r--r--boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque50.hpp102
-rw-r--r--boost/fusion/container/deque/detail/cpp03/preprocessed/deque10.hpp136
-rw-r--r--boost/fusion/container/deque/detail/cpp03/preprocessed/deque20.hpp236
-rw-r--r--boost/fusion/container/deque/detail/cpp03/preprocessed/deque30.hpp336
-rw-r--r--boost/fusion/container/deque/detail/cpp03/preprocessed/deque40.hpp436
-rw-r--r--boost/fusion/container/deque/detail/cpp03/preprocessed/deque50.hpp536
-rw-r--r--boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values10.hpp102
-rw-r--r--boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values20.hpp202
-rw-r--r--boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values30.hpp302
-rw-r--r--boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values40.hpp402
-rw-r--r--boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values50.hpp502
-rw-r--r--boost/fusion/container/deque/detail/deque_keyed_values.hpp22
-rw-r--r--boost/fusion/container/deque/detail/end_impl.hpp13
-rw-r--r--boost/fusion/container/deque/detail/keyed_element.hpp53
-rw-r--r--boost/fusion/container/deque/front_extended_deque.hpp8
-rw-r--r--boost/fusion/container/generation/cons_tie.hpp4
-rw-r--r--boost/fusion/container/generation/deque_tie.hpp2
-rw-r--r--boost/fusion/container/generation/detail/pp_deque_tie.hpp6
-rw-r--r--boost/fusion/container/generation/detail/pp_make_deque.hpp12
-rw-r--r--boost/fusion/container/generation/detail/pp_make_map.hpp11
-rw-r--r--boost/fusion/container/generation/detail/pp_map_tie.hpp11
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/deque_tie10.hpp60
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/deque_tie20.hpp120
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/deque_tie30.hpp180
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/deque_tie40.hpp240
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/deque_tie50.hpp300
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/list_tie10.hpp60
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/list_tie20.hpp120
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/list_tie30.hpp180
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/list_tie40.hpp240
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/list_tie50.hpp300
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_deque10.hpp63
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_deque20.hpp123
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_deque30.hpp183
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_deque40.hpp243
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_deque50.hpp303
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_list10.hpp63
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_list20.hpp123
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_list30.hpp183
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_list40.hpp243
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_list50.hpp303
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_map10.hpp63
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_map20.hpp123
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_map30.hpp183
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_map40.hpp243
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_map50.hpp303
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_set10.hpp69
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_set20.hpp129
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_set30.hpp189
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_set40.hpp249
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_set50.hpp309
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_vector10.hpp63
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_vector20.hpp123
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_vector30.hpp183
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_vector40.hpp243
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/make_vector50.hpp303
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/map_tie10.hpp63
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/map_tie20.hpp123
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/map_tie30.hpp183
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/map_tie40.hpp243
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/map_tie50.hpp303
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/vector_tie10.hpp60
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/vector_tie20.hpp120
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/vector_tie30.hpp180
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/vector_tie40.hpp240
-rw-r--r--boost/fusion/container/generation/detail/preprocessed/vector_tie50.hpp300
-rw-r--r--boost/fusion/container/generation/ignore.hpp4
-rw-r--r--boost/fusion/container/generation/list_tie.hpp6
-rw-r--r--boost/fusion/container/generation/make_cons.hpp4
-rw-r--r--boost/fusion/container/generation/make_deque.hpp4
-rw-r--r--boost/fusion/container/generation/make_list.hpp9
-rw-r--r--boost/fusion/container/generation/make_map.hpp2
-rw-r--r--boost/fusion/container/generation/make_set.hpp26
-rw-r--r--boost/fusion/container/generation/make_vector.hpp9
-rw-r--r--boost/fusion/container/generation/map_tie.hpp2
-rw-r--r--boost/fusion/container/generation/pair_tie.hpp4
-rw-r--r--boost/fusion/container/generation/vector_tie.hpp6
-rw-r--r--boost/fusion/container/list/cons.hpp41
-rw-r--r--boost/fusion/container/list/cons_iterator.hpp34
-rw-r--r--boost/fusion/container/list/convert.hpp6
-rw-r--r--boost/fusion/container/list/detail/at_impl.hpp6
-rw-r--r--boost/fusion/container/list/detail/begin_impl.hpp4
-rw-r--r--boost/fusion/container/list/detail/build_cons.hpp8
-rw-r--r--boost/fusion/container/list/detail/convert_impl.hpp2
-rw-r--r--boost/fusion/container/list/detail/deref_impl.hpp8
-rw-r--r--boost/fusion/container/list/detail/end_impl.hpp6
-rw-r--r--boost/fusion/container/list/detail/equal_to_impl.hpp2
-rw-r--r--boost/fusion/container/list/detail/list_forward_ctor.hpp6
-rw-r--r--boost/fusion/container/list/detail/list_to_cons_call.hpp8
-rw-r--r--boost/fusion/container/list/detail/next_impl.hpp6
-rw-r--r--boost/fusion/container/list/detail/preprocessed/list10.hpp79
-rw-r--r--boost/fusion/container/list/detail/preprocessed/list20.hpp139
-rw-r--r--boost/fusion/container/list/detail/preprocessed/list30.hpp199
-rw-r--r--boost/fusion/container/list/detail/preprocessed/list40.hpp259
-rw-r--r--boost/fusion/container/list/detail/preprocessed/list50.hpp319
-rw-r--r--boost/fusion/container/list/detail/preprocessed/list_to_cons10.hpp78
-rw-r--r--boost/fusion/container/list/detail/preprocessed/list_to_cons20.hpp158
-rw-r--r--boost/fusion/container/list/detail/preprocessed/list_to_cons30.hpp238
-rw-r--r--boost/fusion/container/list/detail/preprocessed/list_to_cons40.hpp318
-rw-r--r--boost/fusion/container/list/detail/preprocessed/list_to_cons50.hpp398
-rw-r--r--boost/fusion/container/list/detail/reverse_cons.hpp4
-rw-r--r--boost/fusion/container/list/detail/value_at_impl.hpp4
-rw-r--r--boost/fusion/container/list/detail/value_of_impl.hpp2
-rw-r--r--boost/fusion/container/list/list.hpp27
-rw-r--r--boost/fusion/container/list/nil.hpp8
-rw-r--r--boost/fusion/container/map/convert.hpp10
-rw-r--r--boost/fusion/container/map/detail/at_impl.hpp9
-rw-r--r--boost/fusion/container/map/detail/at_key_impl.hpp9
-rw-r--r--boost/fusion/container/map/detail/begin_impl.hpp2
-rw-r--r--boost/fusion/container/map/detail/build_map.hpp6
-rw-r--r--boost/fusion/container/map/detail/cpp03/as_map.hpp11
-rw-r--r--boost/fusion/container/map/detail/cpp03/at_impl.hpp18
-rw-r--r--boost/fusion/container/map/detail/cpp03/begin_impl.hpp2
-rw-r--r--boost/fusion/container/map/detail/cpp03/convert.hpp4
-rw-r--r--boost/fusion/container/map/detail/cpp03/convert_impl.hpp2
-rw-r--r--boost/fusion/container/map/detail/cpp03/deref_data_impl.hpp2
-rw-r--r--boost/fusion/container/map/detail/cpp03/deref_impl.hpp2
-rw-r--r--boost/fusion/container/map/detail/cpp03/end_impl.hpp2
-rw-r--r--boost/fusion/container/map/detail/cpp03/map.hpp57
-rw-r--r--boost/fusion/container/map/detail/cpp03/map_forward_ctor.hpp34
-rw-r--r--boost/fusion/container/map/detail/cpp03/preprocessed/as_map10.hpp22
-rw-r--r--boost/fusion/container/map/detail/cpp03/preprocessed/as_map20.hpp42
-rw-r--r--boost/fusion/container/map/detail/cpp03/preprocessed/as_map30.hpp62
-rw-r--r--boost/fusion/container/map/detail/cpp03/preprocessed/as_map40.hpp82
-rw-r--r--boost/fusion/container/map/detail/cpp03/preprocessed/as_map50.hpp102
-rw-r--r--boost/fusion/container/map/detail/cpp03/preprocessed/map10.hpp148
-rw-r--r--boost/fusion/container/map/detail/cpp03/preprocessed/map20.hpp258
-rw-r--r--boost/fusion/container/map/detail/cpp03/preprocessed/map30.hpp368
-rw-r--r--boost/fusion/container/map/detail/cpp03/preprocessed/map40.hpp556
-rw-r--r--boost/fusion/container/map/detail/cpp03/preprocessed/map50.hpp686
-rw-r--r--boost/fusion/container/map/detail/cpp03/value_at_impl.hpp2
-rw-r--r--boost/fusion/container/map/detail/end_impl.hpp2
-rw-r--r--boost/fusion/container/map/detail/map_impl.hpp62
-rw-r--r--boost/fusion/container/map/detail/value_at_impl.hpp3
-rw-r--r--boost/fusion/container/map/detail/value_at_key_impl.hpp3
-rw-r--r--boost/fusion/container/map/map.hpp32
-rw-r--r--boost/fusion/container/map/map_fwd.hpp7
-rw-r--r--boost/fusion/container/map/map_iterator.hpp46
-rw-r--r--boost/fusion/container/set/convert.hpp4
-rw-r--r--boost/fusion/container/set/detail/as_set.hpp11
-rw-r--r--boost/fusion/container/set/detail/begin_impl.hpp2
-rw-r--r--boost/fusion/container/set/detail/convert_impl.hpp2
-rw-r--r--boost/fusion/container/set/detail/deref_impl.hpp2
-rw-r--r--boost/fusion/container/set/detail/end_impl.hpp2
-rw-r--r--boost/fusion/container/set/detail/preprocessed/as_set10.hpp22
-rw-r--r--boost/fusion/container/set/detail/preprocessed/as_set20.hpp42
-rw-r--r--boost/fusion/container/set/detail/preprocessed/as_set30.hpp62
-rw-r--r--boost/fusion/container/set/detail/preprocessed/as_set40.hpp82
-rw-r--r--boost/fusion/container/set/detail/preprocessed/as_set50.hpp102
-rw-r--r--boost/fusion/container/set/detail/preprocessed/set10.hpp73
-rw-r--r--boost/fusion/container/set/detail/preprocessed/set20.hpp133
-rw-r--r--boost/fusion/container/set/detail/preprocessed/set30.hpp193
-rw-r--r--boost/fusion/container/set/detail/preprocessed/set40.hpp253
-rw-r--r--boost/fusion/container/set/detail/preprocessed/set50.hpp313
-rw-r--r--boost/fusion/container/set/detail/set_forward_ctor.hpp6
-rw-r--r--boost/fusion/container/set/set.hpp15
-rw-r--r--boost/fusion/container/vector/convert.hpp4
-rw-r--r--boost/fusion/container/vector/detail/advance_impl.hpp6
-rw-r--r--boost/fusion/container/vector/detail/as_vector.hpp10
-rw-r--r--boost/fusion/container/vector/detail/at_impl.hpp4
-rw-r--r--boost/fusion/container/vector/detail/begin_impl.hpp6
-rw-r--r--boost/fusion/container/vector/detail/convert_impl.hpp2
-rw-r--r--boost/fusion/container/vector/detail/deref_impl.hpp6
-rw-r--r--boost/fusion/container/vector/detail/distance_impl.hpp4
-rw-r--r--boost/fusion/container/vector/detail/end_impl.hpp6
-rw-r--r--boost/fusion/container/vector/detail/equal_to_impl.hpp2
-rw-r--r--boost/fusion/container/vector/detail/next_impl.hpp4
-rw-r--r--boost/fusion/container/vector/detail/preprocessed/as_vector10.hpp22
-rw-r--r--boost/fusion/container/vector/detail/preprocessed/as_vector20.hpp42
-rw-r--r--boost/fusion/container/vector/detail/preprocessed/as_vector30.hpp62
-rw-r--r--boost/fusion/container/vector/detail/preprocessed/as_vector40.hpp82
-rw-r--r--boost/fusion/container/vector/detail/preprocessed/as_vector50.hpp102
-rw-r--r--boost/fusion/container/vector/detail/preprocessed/vector10.hpp738
-rw-r--r--boost/fusion/container/vector/detail/preprocessed/vector20.hpp740
-rw-r--r--boost/fusion/container/vector/detail/preprocessed/vector30.hpp740
-rw-r--r--boost/fusion/container/vector/detail/preprocessed/vector40.hpp740
-rw-r--r--boost/fusion/container/vector/detail/preprocessed/vector50.hpp740
-rw-r--r--boost/fusion/container/vector/detail/preprocessed/vvector10.hpp195
-rw-r--r--boost/fusion/container/vector/detail/preprocessed/vvector20.hpp355
-rw-r--r--boost/fusion/container/vector/detail/preprocessed/vvector30.hpp515
-rw-r--r--boost/fusion/container/vector/detail/preprocessed/vvector40.hpp675
-rw-r--r--boost/fusion/container/vector/detail/preprocessed/vvector50.hpp835
-rw-r--r--boost/fusion/container/vector/detail/prior_impl.hpp4
-rw-r--r--boost/fusion/container/vector/detail/value_at_impl.hpp2
-rw-r--r--boost/fusion/container/vector/detail/value_of_impl.hpp2
-rw-r--r--boost/fusion/container/vector/detail/vector_forward_ctor.hpp30
-rw-r--r--boost/fusion/container/vector/detail/vector_n.hpp141
-rw-r--r--boost/fusion/container/vector/vector.hpp54
-rw-r--r--boost/fusion/container/vector/vector10.hpp9
-rw-r--r--boost/fusion/container/vector/vector20.hpp1
-rw-r--r--boost/fusion/container/vector/vector30.hpp1
-rw-r--r--boost/fusion/container/vector/vector40.hpp1
-rw-r--r--boost/fusion/container/vector/vector50.hpp1
-rw-r--r--boost/fusion/container/vector/vector_iterator.hpp12
-rw-r--r--boost/fusion/functional/adapter/fused.hpp10
-rw-r--r--boost/fusion/functional/adapter/fused_function_object.hpp10
-rw-r--r--boost/fusion/functional/adapter/fused_procedure.hpp10
-rw-r--r--boost/fusion/functional/adapter/unfused.hpp15
-rw-r--r--boost/fusion/functional/adapter/unfused_typed.hpp6
-rw-r--r--boost/fusion/functional/generation/detail/gen_make_adapter.hpp2
-rw-r--r--boost/fusion/functional/invocation/detail/that_ptr.hpp10
-rw-r--r--boost/fusion/functional/invocation/invoke.hpp81
-rw-r--r--boost/fusion/functional/invocation/invoke_function_object.hpp63
-rw-r--r--boost/fusion/functional/invocation/invoke_procedure.hpp64
-rw-r--r--boost/fusion/include/hash.hpp12
-rw-r--r--boost/fusion/include/std_tuple.hpp (renamed from boost/fusion/include/adapt_assoc_class.hpp)10
-rw-r--r--boost/fusion/iterator/advance.hpp4
-rw-r--r--boost/fusion/iterator/basic_iterator.hpp19
-rw-r--r--boost/fusion/iterator/deref.hpp8
-rw-r--r--boost/fusion/iterator/deref_data.hpp4
-rw-r--r--boost/fusion/iterator/detail/adapt_deref_traits.hpp2
-rw-r--r--boost/fusion/iterator/detail/advance.hpp8
-rw-r--r--boost/fusion/iterator/detail/distance.hpp2
-rw-r--r--boost/fusion/iterator/detail/segment_sequence.hpp4
-rw-r--r--boost/fusion/iterator/detail/segmented_iterator.hpp8
-rw-r--r--boost/fusion/iterator/detail/segmented_next_impl.hpp20
-rw-r--r--boost/fusion/iterator/distance.hpp2
-rw-r--r--boost/fusion/iterator/equal_to.hpp4
-rw-r--r--boost/fusion/iterator/iterator_adapter.hpp30
-rw-r--r--boost/fusion/iterator/iterator_facade.hpp10
-rw-r--r--boost/fusion/iterator/mpl/convert_iterator.hpp6
-rw-r--r--boost/fusion/iterator/next.hpp4
-rw-r--r--boost/fusion/iterator/prior.hpp4
-rw-r--r--boost/fusion/sequence/comparison/detail/equal_to.hpp8
-rw-r--r--boost/fusion/sequence/comparison/detail/greater.hpp6
-rw-r--r--boost/fusion/sequence/comparison/detail/greater_equal.hpp6
-rw-r--r--boost/fusion/sequence/comparison/detail/less.hpp6
-rw-r--r--boost/fusion/sequence/comparison/detail/less_equal.hpp6
-rw-r--r--boost/fusion/sequence/comparison/detail/not_equal_to.hpp8
-rw-r--r--boost/fusion/sequence/comparison/equal_to.hpp4
-rw-r--r--boost/fusion/sequence/comparison/greater.hpp4
-rw-r--r--boost/fusion/sequence/comparison/greater_equal.hpp4
-rw-r--r--boost/fusion/sequence/comparison/less.hpp4
-rw-r--r--boost/fusion/sequence/comparison/less_equal.hpp10
-rw-r--r--boost/fusion/sequence/comparison/not_equal_to.hpp4
-rw-r--r--boost/fusion/sequence/convert.hpp6
-rw-r--r--boost/fusion/sequence/hash.hpp42
-rw-r--r--boost/fusion/sequence/intrinsic.hpp1
-rw-r--r--boost/fusion/sequence/intrinsic/at.hpp26
-rw-r--r--boost/fusion/sequence/intrinsic/at_key.hpp6
-rw-r--r--boost/fusion/sequence/intrinsic/back.hpp4
-rw-r--r--boost/fusion/sequence/intrinsic/begin.hpp8
-rw-r--r--boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp2
-rw-r--r--boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp6
-rw-r--r--boost/fusion/sequence/intrinsic/detail/segmented_end.hpp2
-rw-r--r--boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp13
-rw-r--r--boost/fusion/sequence/intrinsic/empty.hpp2
-rw-r--r--boost/fusion/sequence/intrinsic/end.hpp8
-rw-r--r--boost/fusion/sequence/intrinsic/front.hpp4
-rw-r--r--boost/fusion/sequence/intrinsic/has_key.hpp2
-rw-r--r--boost/fusion/sequence/intrinsic/segments.hpp4
-rw-r--r--boost/fusion/sequence/intrinsic/size.hpp18
-rw-r--r--boost/fusion/sequence/intrinsic/swap.hpp16
-rw-r--r--boost/fusion/sequence/intrinsic_fwd.hpp38
-rw-r--r--boost/fusion/sequence/io/detail/manip.hpp6
-rw-r--r--boost/fusion/support/as_const.hpp7
-rw-r--r--boost/fusion/support/config.hpp74
-rw-r--r--boost/fusion/support/deduce.hpp19
-rw-r--r--boost/fusion/support/detail/as_fusion_element.hpp12
-rw-r--r--boost/fusion/support/detail/enabler.hpp18
-rw-r--r--boost/fusion/support/detail/result_of.hpp53
-rw-r--r--boost/fusion/support/detail/segmented_fold_until_impl.hpp24
-rw-r--r--boost/fusion/support/is_sequence.hpp4
-rw-r--r--boost/fusion/support/iterator_base.hpp9
-rw-r--r--boost/fusion/support/pair.hpp36
-rw-r--r--boost/fusion/support/segmented_fold_until.hpp12
-rw-r--r--boost/fusion/support/sequence_base.hpp13
-rw-r--r--boost/fusion/support/unused.hpp36
-rw-r--r--boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp40
-rw-r--r--boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp80
-rw-r--r--boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp120
-rw-r--r--boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp160
-rw-r--r--boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp200
-rw-r--r--boost/fusion/tuple/detail/preprocessed/tuple10.hpp40
-rw-r--r--boost/fusion/tuple/detail/preprocessed/tuple20.hpp80
-rw-r--r--boost/fusion/tuple/detail/preprocessed/tuple30.hpp120
-rw-r--r--boost/fusion/tuple/detail/preprocessed/tuple40.hpp160
-rw-r--r--boost/fusion/tuple/detail/preprocessed/tuple50.hpp200
-rw-r--r--boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp40
-rw-r--r--boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp80
-rw-r--r--boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp120
-rw-r--r--boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp160
-rw-r--r--boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp200
-rw-r--r--boost/fusion/tuple/detail/tuple_expand.hpp4
-rw-r--r--boost/fusion/tuple/make_tuple.hpp4
-rw-r--r--boost/fusion/tuple/tuple_tie.hpp4
-rw-r--r--boost/fusion/view/detail/strictest_traversal.hpp2
-rw-r--r--boost/fusion/view/filter_view/detail/begin_impl.hpp2
-rw-r--r--boost/fusion/view/filter_view/detail/deref_data_impl.hpp2
-rw-r--r--boost/fusion/view/filter_view/detail/end_impl.hpp2
-rw-r--r--boost/fusion/view/filter_view/detail/next_impl.hpp2
-rw-r--r--boost/fusion/view/filter_view/filter_view.hpp6
-rw-r--r--boost/fusion/view/filter_view/filter_view_iterator.hpp11
-rw-r--r--boost/fusion/view/flatten_view/flatten_view.hpp26
-rw-r--r--boost/fusion/view/flatten_view/flatten_view_iterator.hpp61
-rw-r--r--boost/fusion/view/iterator_range/detail/at_impl.hpp2
-rw-r--r--boost/fusion/view/iterator_range/detail/begin_impl.hpp4
-rw-r--r--boost/fusion/view/iterator_range/detail/end_impl.hpp4
-rw-r--r--boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp28
-rw-r--r--boost/fusion/view/iterator_range/detail/segments_impl.hpp2
-rw-r--r--boost/fusion/view/iterator_range/iterator_range.hpp2
-rw-r--r--boost/fusion/view/joint_view/detail/begin_impl.hpp6
-rw-r--r--boost/fusion/view/joint_view/detail/deref_data_impl.hpp2
-rw-r--r--boost/fusion/view/joint_view/detail/end_impl.hpp2
-rw-r--r--boost/fusion/view/joint_view/detail/next_impl.hpp6
-rw-r--r--boost/fusion/view/joint_view/joint_view.hpp8
-rw-r--r--boost/fusion/view/joint_view/joint_view_iterator.hpp11
-rw-r--r--boost/fusion/view/nview/detail/advance_impl.hpp4
-rw-r--r--boost/fusion/view/nview/detail/at_impl.hpp6
-rw-r--r--boost/fusion/view/nview/detail/begin_impl.hpp2
-rw-r--r--boost/fusion/view/nview/detail/deref_impl.hpp2
-rw-r--r--boost/fusion/view/nview/detail/distance_impl.hpp2
-rw-r--r--boost/fusion/view/nview/detail/end_impl.hpp2
-rw-r--r--boost/fusion/view/nview/detail/next_impl.hpp2
-rw-r--r--boost/fusion/view/nview/detail/nview_impl.hpp2
-rw-r--r--boost/fusion/view/nview/detail/prior_impl.hpp2
-rw-r--r--boost/fusion/view/nview/nview.hpp11
-rw-r--r--boost/fusion/view/nview/nview_iterator.hpp12
-rw-r--r--boost/fusion/view/repetitive_view/detail/begin_impl.hpp2
-rw-r--r--boost/fusion/view/repetitive_view/detail/deref_impl.hpp2
-rw-r--r--boost/fusion/view/repetitive_view/detail/end_impl.hpp2
-rw-r--r--boost/fusion/view/repetitive_view/detail/next_impl.hpp6
-rw-r--r--boost/fusion/view/repetitive_view/repetitive_view.hpp2
-rw-r--r--boost/fusion/view/repetitive_view/repetitive_view_iterator.hpp19
-rw-r--r--boost/fusion/view/reverse_view/detail/advance_impl.hpp2
-rw-r--r--boost/fusion/view/reverse_view/detail/at_impl.hpp2
-rw-r--r--boost/fusion/view/reverse_view/detail/begin_impl.hpp2
-rw-r--r--boost/fusion/view/reverse_view/detail/deref_data_impl.hpp2
-rw-r--r--boost/fusion/view/reverse_view/detail/deref_impl.hpp2
-rw-r--r--boost/fusion/view/reverse_view/detail/distance_impl.hpp2
-rw-r--r--boost/fusion/view/reverse_view/detail/end_impl.hpp2
-rw-r--r--boost/fusion/view/reverse_view/detail/next_impl.hpp2
-rw-r--r--boost/fusion/view/reverse_view/detail/prior_impl.hpp2
-rw-r--r--boost/fusion/view/reverse_view/reverse_view.hpp6
-rw-r--r--boost/fusion/view/reverse_view/reverse_view_iterator.hpp11
-rw-r--r--boost/fusion/view/single_view/detail/advance_impl.hpp2
-rw-r--r--boost/fusion/view/single_view/detail/at_impl.hpp2
-rw-r--r--boost/fusion/view/single_view/detail/begin_impl.hpp2
-rw-r--r--boost/fusion/view/single_view/detail/deref_impl.hpp2
-rw-r--r--boost/fusion/view/single_view/detail/distance_impl.hpp2
-rw-r--r--boost/fusion/view/single_view/detail/end_impl.hpp2
-rw-r--r--boost/fusion/view/single_view/detail/next_impl.hpp2
-rw-r--r--boost/fusion/view/single_view/detail/prior_impl.hpp2
-rw-r--r--boost/fusion/view/single_view/single_view.hpp7
-rw-r--r--boost/fusion/view/single_view/single_view_iterator.hpp12
-rw-r--r--boost/fusion/view/transform_view/detail/advance_impl.hpp4
-rw-r--r--boost/fusion/view/transform_view/detail/at_impl.hpp4
-rw-r--r--boost/fusion/view/transform_view/detail/begin_impl.hpp4
-rw-r--r--boost/fusion/view/transform_view/detail/deref_impl.hpp4
-rw-r--r--boost/fusion/view/transform_view/detail/distance_impl.hpp4
-rw-r--r--boost/fusion/view/transform_view/detail/end_impl.hpp4
-rw-r--r--boost/fusion/view/transform_view/detail/next_impl.hpp4
-rw-r--r--boost/fusion/view/transform_view/detail/prior_impl.hpp4
-rw-r--r--boost/fusion/view/transform_view/transform_view.hpp16
-rw-r--r--boost/fusion/view/transform_view/transform_view_iterator.hpp16
-rw-r--r--boost/fusion/view/zip_view/detail/advance_impl.hpp4
-rw-r--r--boost/fusion/view/zip_view/detail/at_impl.hpp8
-rw-r--r--boost/fusion/view/zip_view/detail/begin_impl.hpp8
-rw-r--r--boost/fusion/view/zip_view/detail/deref_impl.hpp6
-rw-r--r--boost/fusion/view/zip_view/detail/distance_impl.hpp2
-rw-r--r--boost/fusion/view/zip_view/detail/end_impl.hpp8
-rw-r--r--boost/fusion/view/zip_view/detail/next_impl.hpp6
-rw-r--r--boost/fusion/view/zip_view/detail/prior_impl.hpp6
-rw-r--r--boost/fusion/view/zip_view/zip_view.hpp2
-rw-r--r--boost/fusion/view/zip_view/zip_view_iterator.hpp11
496 files changed, 18684 insertions, 12872 deletions
diff --git a/boost/fusion/adapted/adt/adapt_adt.hpp b/boost/fusion/adapted/adt/adapt_adt.hpp
index 3be25b1..7ff6f4e 100644
--- a/boost/fusion/adapted/adt/adapt_adt.hpp
+++ b/boost/fusion/adapted/adt/adapt_adt.hpp
@@ -2,6 +2,7 @@
Copyright (c) 2001-2009 Joel de Guzman
Copyright (c) 2009-2010 Hartmut Kaiser
Copyright (c) 2010-2011 Christopher Schmidt
+ Copyright (c) 2013-2014 Damien Buhl
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -13,6 +14,9 @@
#include <boost/fusion/support/config.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/empty.hpp>
+#include <boost/preprocessor/control/if.hpp>
+#include <boost/preprocessor/comparison/equal.hpp>
+#include <boost/preprocessor/comparison/less.hpp>
#include <boost/type_traits/add_reference.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/type_traits/add_const.hpp>
@@ -22,6 +26,7 @@
#include <boost/fusion/adapted/struct/detail/adapt_base.hpp>
#include <boost/fusion/adapted/struct/detail/at_impl.hpp>
#include <boost/fusion/adapted/struct/detail/is_view_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/proxy_type.hpp>
#include <boost/fusion/adapted/struct/detail/is_sequence_impl.hpp>
#include <boost/fusion/adapted/struct/detail/value_at_impl.hpp>
#include <boost/fusion/adapted/struct/detail/category_of_impl.hpp>
@@ -32,17 +37,21 @@
#include <boost/fusion/adapted/struct/detail/deref_impl.hpp>
#include <boost/fusion/adapted/adt/detail/extension.hpp>
#include <boost/fusion/adapted/adt/detail/adapt_base.hpp>
+#include <boost/fusion/adapted/adt/detail/adapt_base_attr_filler.hpp>
-#define BOOST_FUSION_ADAPT_ADT_FILLER_0(A, B, C, D)\
- ((A, B, C, D)) BOOST_FUSION_ADAPT_ADT_FILLER_1
-#define BOOST_FUSION_ADAPT_ADT_FILLER_1(A, B, C, D)\
- ((A, B, C, D)) BOOST_FUSION_ADAPT_ADT_FILLER_0
-#define BOOST_FUSION_ADAPT_ADT_FILLER_0_END
-#define BOOST_FUSION_ADAPT_ADT_FILLER_1_END
-
-#define BOOST_FUSION_ADAPT_ADT_C(TEMPLATE_PARAMS_SEQ, NAME_SEQ, I, ATTRIBUTE) \
- BOOST_FUSION_ADAPT_ADT_C_BASE( \
- TEMPLATE_PARAMS_SEQ, NAME_SEQ, I, ATTRIBUTE, 4)
+#define BOOST_FUSION_ADAPT_ADT_C( \
+ TEMPLATE_PARAMS_SEQ, NAME_SEQ, IS_VIEW, I, ATTRIBUTE) \
+ BOOST_FUSION_ADAPT_ADT_C_BASE( \
+ TEMPLATE_PARAMS_SEQ, \
+ NAME_SEQ, \
+ I, \
+ BOOST_PP_IF(IS_VIEW, BOOST_FUSION_PROXY_PREFIX, BOOST_PP_EMPTY), \
+ BOOST_FUSION_ADAPT_ADT_WRAPPEDATTR(ATTRIBUTE), \
+ BOOST_FUSION_ADAPT_ADT_WRAPPEDATTR_SIZE(ATTRIBUTE), \
+ BOOST_PP_IF( \
+ BOOST_PP_LESS( \
+ BOOST_FUSION_ADAPT_ADT_WRAPPEDATTR_SIZE(ATTRIBUTE), 4) \
+ , 1, 0))
#define BOOST_FUSION_ADAPT_TPL_ADT(TEMPLATE_PARAMS_SEQ, NAME_SEQ , ATTRIBUTES) \
BOOST_FUSION_ADAPT_STRUCT_BASE( \
diff --git a/boost/fusion/adapted/adt/adapt_assoc_adt.hpp b/boost/fusion/adapted/adt/adapt_assoc_adt.hpp
index 12bf6aa..49a8805 100644
--- a/boost/fusion/adapted/adt/adapt_assoc_adt.hpp
+++ b/boost/fusion/adapted/adt/adapt_assoc_adt.hpp
@@ -2,6 +2,7 @@
Copyright (c) 2001-2009 Joel de Guzman
Copyright (c) 2007 Dan Marsden
Copyright (c) 2010-2011 Christopher Schmidt
+ Copyright (c) 2013-2014 Damien Buhl
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -22,6 +23,7 @@
#include <boost/fusion/adapted/struct/detail/adapt_base.hpp>
#include <boost/fusion/adapted/struct/detail/at_impl.hpp>
#include <boost/fusion/adapted/struct/detail/is_view_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/proxy_type.hpp>
#include <boost/fusion/adapted/struct/detail/is_sequence_impl.hpp>
#include <boost/fusion/adapted/struct/detail/value_at_impl.hpp>
#include <boost/fusion/adapted/struct/detail/category_of_impl.hpp>
@@ -35,25 +37,29 @@
#include <boost/fusion/adapted/struct/detail/value_of_data_impl.hpp>
#include <boost/fusion/adapted/adt/detail/extension.hpp>
#include <boost/fusion/adapted/adt/detail/adapt_base.hpp>
-
-#define BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_0(A, B, C, D, E)\
- ((A, B, C, D, E)) BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_1
-#define BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_1(A, B, C, D, E)\
- ((A, B, C, D, E)) BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_0
-#define BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_0_END
-#define BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_1_END
+#include <boost/fusion/adapted/adt/detail/adapt_base_assoc_attr_filler.hpp>
#define BOOST_FUSION_ADAPT_ASSOC_ADT_C( \
- TEMPLATE_PARAMS_SEQ, NAME_SEQ, I, ATTRIBUTE) \
+ TEMPLATE_PARAMS_SEQ, NAME_SEQ, IS_VIEW, I, ATTRIBUTE) \
\
- BOOST_FUSION_ADAPT_ADT_C_BASE(TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,ATTRIBUTE,5) \
+ BOOST_FUSION_ADAPT_ADT_C_BASE( \
+ TEMPLATE_PARAMS_SEQ, \
+ NAME_SEQ, \
+ I, \
+ BOOST_PP_IF(IS_VIEW, BOOST_FUSION_PROXY_PREFIX, BOOST_PP_EMPTY), \
+ BOOST_FUSION_ADAPT_ADT_WRAPPEDATTR(ATTRIBUTE), \
+ BOOST_FUSION_ADAPT_ADT_WRAPPEDATTR_SIZE(ATTRIBUTE), \
+ BOOST_PP_IF( \
+ BOOST_PP_LESS( \
+ BOOST_FUSION_ADAPT_ADT_WRAPPEDATTR_SIZE(ATTRIBUTE), 5) \
+ , 1, 0)) \
\
template< \
BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ) \
> \
struct struct_assoc_key<BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ), I> \
{ \
- typedef BOOST_PP_TUPLE_ELEM(5, 4, ATTRIBUTE) type; \
+ typedef BOOST_FUSION_ADAPT_ASSOC_ADT_WRAPPEDATTR_GET_KEY(ATTRIBUTE) type;\
};
#define BOOST_FUSION_ADAPT_ASSOC_TPL_ADT( \
diff --git a/boost/fusion/adapted/adt/detail/adapt_base.hpp b/boost/fusion/adapted/adt/detail/adapt_base.hpp
index 3de396d..dec1725 100644
--- a/boost/fusion/adapted/adt/detail/adapt_base.hpp
+++ b/boost/fusion/adapted/adt/detail/adapt_base.hpp
@@ -11,11 +11,18 @@
#define BOOST_FUSION_ADAPTED_ADT_DETAIL_ADAPT_BASE_HPP
#include <boost/fusion/support/config.hpp>
+#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
+#include <boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp>
+
#include <boost/preprocessor/control/if.hpp>
#include <boost/preprocessor/seq/seq.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/mpl/if.hpp>
#include <boost/type_traits/is_const.hpp>
+#include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+#include <boost/typeof/typeof.hpp>
#define BOOST_FUSION_ADAPT_ADT_GET_IDENTITY_TEMPLATE_IMPL(TEMPLATE_PARAMS_SEQ) \
typename detail::get_identity< \
@@ -28,8 +35,72 @@
\
boost::remove_const<boost::remove_reference<lvalue>::type>::type
+#define BOOST_FUSION_ADAPT_ADT_ATTRIBUTE_GETEXPR(ATTRIBUTE, \
+ ATTRIBUTE_TUPEL_SIZE, DEDUCE_TYPE) \
+ BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, \
+ BOOST_PP_IF(DEDUCE_TYPE, 0, 2), ATTRIBUTE)
+
+#define BOOST_FUSION_ADAPT_ADT_ATTRIBUTE_SETEXPR(ATTRIBUTE, \
+ ATTRIBUTE_TUPEL_SIZE, DEDUCE_TYPE) \
+ BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, \
+ BOOST_PP_IF(DEDUCE_TYPE, 1, 3), ATTRIBUTE)
+
+#ifdef BOOST_MSVC
+# define BOOST_FUSION_DEDUCED_ATTR_TYPE(NAME_SEQ, ATTRIBUTE, \
+ ATTRIBUTE_TUPEL_SIZE, PREFIX, TEMPLATE_PARAMS_SEQ) \
+ \
+ BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAMS( \
+ TEMPLATE_PARAMS_SEQ) \
+ \
+ struct deduced_attr_type { \
+ static const BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)& obj; \
+ typedef \
+ BOOST_PP_IF(BOOST_FUSION_ADAPT_IS_TPL(TEMPLATE_PARAMS_SEQ),typename,) \
+ BOOST_TYPEOF( PREFIX() BOOST_FUSION_ADAPT_ADT_ATTRIBUTE_GETEXPR( \
+ ATTRIBUTE, ATTRIBUTE_TUPEL_SIZE, 1)) type; \
+ };
+
+#else
+# define BOOST_FUSION_DEDUCED_ATTR_TYPE(NAME_SEQ, ATTRIBUTE, \
+ ATTRIBUTE_TUPEL_SIZE, PREFIX, TEMPLATE_PARAMS_SEQ) \
+ struct deduced_attr_type { \
+ static const BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)& obj; \
+ typedef BOOST_TYPEOF( PREFIX() BOOST_FUSION_ADAPT_ADT_ATTRIBUTE_GETEXPR( \
+ ATTRIBUTE, ATTRIBUTE_TUPEL_SIZE, 1)) type; \
+ };
+
+#endif
+
+#define BOOST_FUSION_ADT_ATTRIBUTE_TYPEOF( \
+ NAME_SEQ, ATTRIBUTE, ATTRIBUTE_TUPEL_SIZE, PREFIX, TEMPLATE_PARAMS_SEQ) \
+ \
+ BOOST_FUSION_DEDUCED_ATTR_TYPE( \
+ NAME_SEQ, ATTRIBUTE, ATTRIBUTE_TUPEL_SIZE, PREFIX, TEMPLATE_PARAMS_SEQ) \
+ \
+ typedef \
+ BOOST_PP_IF(BOOST_FUSION_ADAPT_IS_TPL(TEMPLATE_PARAMS_SEQ),typename,) \
+ boost::remove_const< \
+ BOOST_PP_IF(BOOST_FUSION_ADAPT_IS_TPL(TEMPLATE_PARAMS_SEQ),typename,) \
+ deduced_attr_type::type \
+ >::type type; \
+ \
+ typedef \
+ BOOST_PP_IF(BOOST_FUSION_ADAPT_IS_TPL(TEMPLATE_PARAMS_SEQ),typename,) \
+ boost::add_const< \
+ BOOST_PP_IF(BOOST_FUSION_ADAPT_IS_TPL(TEMPLATE_PARAMS_SEQ),typename,) \
+ deduced_attr_type::type \
+ >::type const_type;
+
+#define BOOST_FUSION_ADT_ATTRIBUTE_GIVENTYPE( \
+ NAME_SEQ, ATTRIBUTE, ATTRIBUTE_TUPEL_SIZE, PREFIX, TEMPLATE_PARAMS_SEQ) \
+ \
+ typedef BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 0, ATTRIBUTE) type; \
+ typedef BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 1, ATTRIBUTE) const_type;
+
+
#define BOOST_FUSION_ADAPT_ADT_C_BASE( \
- TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,ATTRIBUTE,ATTRIBUTE_TUPEL_SIZE) \
+ TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,PREFIX, \
+ ATTRIBUTE,ATTRIBUTE_TUPEL_SIZE, DEDUCE_TYPE) \
\
template< \
BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ) \
@@ -39,30 +110,43 @@
, I \
> \
{ \
+ \
+ BOOST_PP_IF(DEDUCE_TYPE, \
+ BOOST_FUSION_ADT_ATTRIBUTE_TYPEOF, \
+ BOOST_FUSION_ADT_ATTRIBUTE_GIVENTYPE)( \
+ NAME_SEQ, \
+ ATTRIBUTE, \
+ ATTRIBUTE_TUPEL_SIZE, \
+ PREFIX, \
+ TEMPLATE_PARAMS_SEQ) \
+ \
template<class Val> \
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
static void \
boost_fusion_adapt_adt_impl_set( \
BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)& obj, \
Val const& val) \
{ \
- BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 3, ATTRIBUTE); \
+ PREFIX() BOOST_FUSION_ADAPT_ADT_ATTRIBUTE_SETEXPR(ATTRIBUTE, \
+ ATTRIBUTE_TUPEL_SIZE, DEDUCE_TYPE); \
} \
\
BOOST_FUSION_GPU_ENABLED \
- static BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 0, ATTRIBUTE) \
+ static type \
boost_fusion_adapt_adt_impl_get( \
BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)& obj) \
{ \
- return BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 2, ATTRIBUTE); \
+ return PREFIX() BOOST_FUSION_ADAPT_ADT_ATTRIBUTE_GETEXPR(ATTRIBUTE, \
+ ATTRIBUTE_TUPEL_SIZE, DEDUCE_TYPE); \
} \
\
BOOST_FUSION_GPU_ENABLED \
- static BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 1, ATTRIBUTE) \
+ static const_type \
boost_fusion_adapt_adt_impl_get( \
BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) const& obj) \
{ \
- return BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 2, ATTRIBUTE); \
+ return PREFIX() BOOST_FUSION_ADAPT_ADT_ATTRIBUTE_GETEXPR(ATTRIBUTE, \
+ ATTRIBUTE_TUPEL_SIZE, DEDUCE_TYPE); \
} \
}; \
\
@@ -75,9 +159,14 @@
, true \
> \
{ \
- typedef BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 1, ATTRIBUTE) type; \
+ typedef \
+ BOOST_PP_IF(BOOST_PP_SEQ_HEAD(TEMPLATE_PARAMS_SEQ), typename, ) \
+ access::adt_attribute_access< \
+ BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) \
+ , I \
+ >::const_type type; \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
explicit \
adt_attribute_proxy( \
BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) const& o) \
@@ -111,9 +200,14 @@
, false \
> \
{ \
- typedef BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 0, ATTRIBUTE) type; \
+ typedef \
+ BOOST_PP_IF(BOOST_PP_SEQ_HEAD(TEMPLATE_PARAMS_SEQ), typename, ) \
+ access::adt_attribute_access< \
+ BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) \
+ , I \
+ >::type type; \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
explicit \
adt_attribute_proxy( \
BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)& o) \
@@ -121,7 +215,7 @@
{} \
\
template<class Val> \
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
adt_attribute_proxy& \
operator=(Val const& val) \
{ \
@@ -158,7 +252,13 @@
, I \
> \
{ \
- typedef BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 0, ATTRIBUTE) lvalue; \
+ typedef BOOST_PP_IF(BOOST_PP_SEQ_HEAD(TEMPLATE_PARAMS_SEQ), typename, ) \
+ adt_attribute_proxy< \
+ BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) \
+ , I \
+ , false \
+ >::type lvalue; \
+ \
BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAMS( \
TEMPLATE_PARAMS_SEQ) \
\
@@ -181,7 +281,7 @@
> \
type; \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
static type \
call(Seq& obj) \
{ \
diff --git a/boost/fusion/adapted/adt/detail/adapt_base_assoc_attr_filler.hpp b/boost/fusion/adapted/adt/detail/adapt_base_assoc_attr_filler.hpp
new file mode 100644
index 0000000..b9c93b7
--- /dev/null
+++ b/boost/fusion/adapted/adt/detail/adapt_base_assoc_attr_filler.hpp
@@ -0,0 +1,61 @@
+/*=============================================================================
+ Copyright (c) 2013-2014 Damien Buhl
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_ADAPTER_ADT_DETAIL_ADAPT_BASE_ASSOC_ATTR_FILLER_HPP
+#define BOOST_FUSION_ADAPTER_ADT_DETAIL_ADAPT_BASE_ASSOC_ATTR_FILLER_HPP
+
+#include <boost/config.hpp>
+
+#include <boost/fusion/adapted/adt/detail/adapt_base_attr_filler.hpp>
+
+#include <boost/preprocessor/control/if.hpp>
+#include <boost/preprocessor/variadic/size.hpp>
+#include <boost/preprocessor/empty.hpp>
+#include <boost/preprocessor/facilities/is_empty.hpp>
+
+#if BOOST_PP_VARIADICS
+
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_0(...) \
+ BOOST_FUSION_ADAPT_ASSOC_ADT_WRAP_ATTR(__VA_ARGS__) \
+ BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_1
+
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_1(...) \
+ BOOST_FUSION_ADAPT_ASSOC_ADT_WRAP_ATTR(__VA_ARGS__) \
+ BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_0
+
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_WRAP_ATTR(...) \
+ ((BOOST_PP_VARIADIC_SIZE(__VA_ARGS__), (__VA_ARGS__)))
+
+#else // BOOST_PP_VARIADICS
+
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_0(A, B, C, D, E) \
+ BOOST_FUSION_ADAPT_ASSOC_ADT_WRAP_ATTR(A, B, C, D, E) \
+ BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_1
+
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_1(A, B, C, D, E) \
+ BOOST_FUSION_ADAPT_ASSOC_ADT_WRAP_ATTR(A, B, C, D, E) \
+ BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_0
+
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_WRAP_ATTR(A, B, C, D, E) \
+ BOOST_PP_IF(BOOST_PP_IS_EMPTY(A), \
+ ((3, (C,D,E))), \
+ ((5, (A,B,C,D,E))) \
+ )
+
+#endif // BOOST_PP_VARIADICS
+
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_0_END
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_1_END
+
+
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_WRAPPEDATTR_GET_KEY(ATTRIBUTE) \
+ BOOST_PP_TUPLE_ELEM( \
+ BOOST_FUSION_ADAPT_ADT_WRAPPEDATTR_SIZE(ATTRIBUTE), \
+ BOOST_PP_SUB(BOOST_FUSION_ADAPT_ADT_WRAPPEDATTR_SIZE(ATTRIBUTE), 1), \
+ BOOST_FUSION_ADAPT_ADT_WRAPPEDATTR(ATTRIBUTE))
+
+#endif
diff --git a/boost/fusion/adapted/adt/detail/adapt_base_attr_filler.hpp b/boost/fusion/adapted/adt/detail/adapt_base_attr_filler.hpp
new file mode 100644
index 0000000..09bd401
--- /dev/null
+++ b/boost/fusion/adapted/adt/detail/adapt_base_attr_filler.hpp
@@ -0,0 +1,90 @@
+/*=============================================================================
+ Copyright (c) 2013-2014 Damien Buhl
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_ADAPTED_ADT_DETAIL_ADAPT_BASE_ATTR_FILLER_HPP
+#define BOOST_FUSION_ADAPTED_ADT_DETAIL_ADAPT_BASE_ATTR_FILLER_HPP
+
+#include <boost/config.hpp>
+#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
+
+#include <boost/preprocessor/arithmetic/sub.hpp>
+#include <boost/preprocessor/control/if.hpp>
+#include <boost/preprocessor/logical/or.hpp>
+#include <boost/preprocessor/empty.hpp>
+#include <boost/preprocessor/tuple/size.hpp>
+#include <boost/preprocessor/tuple/elem.hpp>
+#include <boost/preprocessor/facilities/is_empty.hpp>
+#include <boost/preprocessor/variadic/to_seq.hpp>
+#include <boost/preprocessor/variadic/to_tuple.hpp>
+#include <boost/preprocessor/variadic/elem.hpp>
+#include <boost/preprocessor/seq/for_each.hpp>
+#include <boost/preprocessor/seq/push_front.hpp>
+#include <boost/preprocessor/seq/rest_n.hpp>
+
+#include <boost/preprocessor/tuple/reverse.hpp>
+
+
+#define BOOST_FUSION_ADAPT_ADT_WRAPPEDATTR_SIZE(ATTRIBUTE) \
+ BOOST_PP_TUPLE_ELEM(2, 0, ATTRIBUTE)
+
+#define BOOST_FUSION_ADAPT_ADT_WRAPPEDATTR(ATTRIBUTE) \
+ BOOST_PP_TUPLE_ELEM(2, 1, ATTRIBUTE)
+
+#if BOOST_PP_VARIADICS
+
+# define BOOST_FUSION_ADAPT_ADT_FILLER_0(...) \
+ BOOST_FUSION_ADAPT_ADT_FILLER(__VA_ARGS__) \
+ BOOST_FUSION_ADAPT_ADT_FILLER_1
+
+# define BOOST_FUSION_ADAPT_ADT_FILLER_1(...) \
+ BOOST_FUSION_ADAPT_ADT_FILLER(__VA_ARGS__) \
+ BOOST_FUSION_ADAPT_ADT_FILLER_0
+
+# define BOOST_FUSION_ADAPT_ADT_FILLER_0_END
+# define BOOST_FUSION_ADAPT_ADT_FILLER_1_END
+
+# define BOOST_FUSION_ADAPT_ADT_FILLER(...) \
+ BOOST_PP_IF( \
+ BOOST_PP_OR( \
+ BOOST_PP_IS_EMPTY(BOOST_PP_VARIADIC_ELEM(0, __VA_ARGS__)), \
+ BOOST_PP_IS_EMPTY(BOOST_PP_VARIADIC_ELEM(1, __VA_ARGS__))), \
+ BOOST_FUSION_ADAPT_ADT_WRAP_ATTR( \
+ BOOST_PP_VARIADIC_ELEM(2, __VA_ARGS__), \
+ BOOST_FUSION_WORKAROUND_VARIADIC_EMPTINESS_LAST_ELEM(__VA_ARGS__) \
+ ), \
+ BOOST_FUSION_ADAPT_ADT_WRAP_ATTR(__VA_ARGS__))
+
+# define BOOST_FUSION_ADAPT_ADT_WRAP_ATTR(...) \
+ ((BOOST_PP_VARIADIC_SIZE(__VA_ARGS__), (__VA_ARGS__)))
+
+# define BOOST_FUSION_WORKAROUND_VARIADIC_EMPTINESS_LAST_ELEM(...) \
+ BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REST_N( \
+ BOOST_PP_SUB(BOOST_PP_VARIADIC_SIZE(__VA_ARGS__), 1), \
+ BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__)))
+
+#else // BOOST_PP_VARIADICS
+
+# define BOOST_FUSION_ADAPT_ADT_FILLER_0(A, B, C, D) \
+ BOOST_FUSION_ADAPT_ADT_WRAP_ATTR(A,B,C,D) \
+ BOOST_FUSION_ADAPT_ADT_FILLER_1
+
+# define BOOST_FUSION_ADAPT_ADT_FILLER_1(A, B, C, D) \
+ BOOST_FUSION_ADAPT_ADT_WRAP_ATTR(A,B,C,D) \
+ BOOST_FUSION_ADAPT_ADT_FILLER_0
+
+# define BOOST_FUSION_ADAPT_ADT_FILLER_0_END
+# define BOOST_FUSION_ADAPT_ADT_FILLER_1_END
+
+# define BOOST_FUSION_ADAPT_ADT_WRAP_ATTR(A, B, C, D) \
+ BOOST_PP_IF(BOOST_PP_IS_EMPTY(A), \
+ ((2, (C,D))), \
+ ((4, (A,B,C,D))) \
+ )
+
+#endif // BOOST_PP_VARIADICS
+
+#endif
diff --git a/boost/fusion/adapted/adt/detail/extension.hpp b/boost/fusion/adapted/adt/detail/extension.hpp
index 6349118..c7d2589 100644
--- a/boost/fusion/adapted/adt/detail/extension.hpp
+++ b/boost/fusion/adapted/adt/detail/extension.hpp
@@ -17,7 +17,7 @@
#include <boost/fusion/adapted/struct/detail/extension.hpp>
namespace boost { namespace fusion
-{
+{
namespace detail
{
template <typename T, typename Dummy>
@@ -25,12 +25,12 @@ namespace boost { namespace fusion
: remove_const<typename remove_reference<T>::type>
{};
}
-
+
namespace extension
{
// Overload as_const() to unwrap adt_attribute_proxy.
template <typename T, int N, bool Const>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
typename adt_attribute_proxy<T, N, Const>::type as_const(const adt_attribute_proxy<T, N, Const>& proxy)
{
return proxy.get();
diff --git a/boost/fusion/adapted/array/at_impl.hpp b/boost/fusion/adapted/array/at_impl.hpp
index 084fffc..369c8e2 100644
--- a/boost/fusion/adapted/array/at_impl.hpp
+++ b/boost/fusion/adapted/array/at_impl.hpp
@@ -27,7 +27,7 @@ namespace boost { namespace fusion { namespace extension
add_reference<typename remove_extent<Seq>::type>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Seq& seq)
{
diff --git a/boost/fusion/adapted/array/begin_impl.hpp b/boost/fusion/adapted/array/begin_impl.hpp
index 4ffaba0..8ea5a00 100644
--- a/boost/fusion/adapted/array/begin_impl.hpp
+++ b/boost/fusion/adapted/array/begin_impl.hpp
@@ -31,7 +31,7 @@ namespace boost { namespace fusion { namespace extension
>
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Seq& seq)
{
diff --git a/boost/fusion/adapted/array/deref_impl.hpp b/boost/fusion/adapted/array/deref_impl.hpp
index a7dc7cb..a5719c3 100644
--- a/boost/fusion/adapted/array/deref_impl.hpp
+++ b/boost/fusion/adapted/array/deref_impl.hpp
@@ -29,7 +29,7 @@ namespace boost { namespace fusion { namespace extension
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(It const& it)
{
diff --git a/boost/fusion/adapted/array/end_impl.hpp b/boost/fusion/adapted/array/end_impl.hpp
index d36c6b8..e4ab63c 100644
--- a/boost/fusion/adapted/array/end_impl.hpp
+++ b/boost/fusion/adapted/array/end_impl.hpp
@@ -33,7 +33,7 @@ namespace boost { namespace fusion { namespace extension
>
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Seq& seq)
{
diff --git a/boost/fusion/adapted/boost_array/array_iterator.hpp b/boost/fusion/adapted/boost_array/array_iterator.hpp
index 0e39d45..ca8da0a 100644
--- a/boost/fusion/adapted/boost_array/array_iterator.hpp
+++ b/boost/fusion/adapted/boost_array/array_iterator.hpp
@@ -32,7 +32,7 @@ namespace boost { namespace fusion
typedef mpl::int_<Pos> index;
typedef Array array_type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
array_iterator(Array& a)
: array(a) {}
@@ -57,7 +57,7 @@ namespace boost { namespace fusion
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const & it)
{
@@ -72,7 +72,7 @@ namespace boost { namespace fusion
typedef typename Iterator::array_type array_type;
typedef array_iterator<array_type, index::value + N::value> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& i)
{
@@ -95,7 +95,7 @@ namespace boost { namespace fusion
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(I1 const&, I2 const&)
{
@@ -109,4 +109,13 @@ namespace boost { namespace fusion
};
}}
+#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
+namespace std
+{
+ template <typename Array, int Pos>
+ struct iterator_traits< ::boost::fusion::array_iterator<Array, Pos> >
+ { };
+}
+#endif
+
#endif
diff --git a/boost/fusion/adapted/boost_array/detail/at_impl.hpp b/boost/fusion/adapted/boost_array/detail/at_impl.hpp
index 15235e8..e355d02 100644
--- a/boost/fusion/adapted/boost_array/detail/at_impl.hpp
+++ b/boost/fusion/adapted/boost_array/detail/at_impl.hpp
@@ -14,7 +14,7 @@
#include <boost/mpl/if.hpp>
namespace boost { namespace fusion {
-
+
struct boost_array_tag;
namespace extension
@@ -33,7 +33,7 @@ namespace boost { namespace fusion {
typename Sequence::const_reference,
typename Sequence::reference>::type type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence& seq)
{
diff --git a/boost/fusion/adapted/boost_array/detail/begin_impl.hpp b/boost/fusion/adapted/boost_array/detail/begin_impl.hpp
index 5e0752c..8481b76 100644
--- a/boost/fusion/adapted/boost_array/detail/begin_impl.hpp
+++ b/boost/fusion/adapted/boost_array/detail/begin_impl.hpp
@@ -24,11 +24,11 @@ namespace boost { namespace fusion {
struct begin_impl<boost_array_tag>
{
template <typename Sequence>
- struct apply
+ struct apply
{
typedef array_iterator<Sequence, 0> type;
-
- BOOST_FUSION_GPU_ENABLED
+
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence& v)
{
diff --git a/boost/fusion/adapted/boost_array/detail/end_impl.hpp b/boost/fusion/adapted/boost_array/detail/end_impl.hpp
index 13ed1e3..7574b36 100644
--- a/boost/fusion/adapted/boost_array/detail/end_impl.hpp
+++ b/boost/fusion/adapted/boost_array/detail/end_impl.hpp
@@ -24,11 +24,11 @@ namespace boost { namespace fusion {
struct end_impl<boost_array_tag>
{
template <typename Sequence>
- struct apply
+ struct apply
{
typedef array_iterator<Sequence, Sequence::static_size> type;
-
- BOOST_FUSION_GPU_ENABLED
+
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence& v)
{
diff --git a/boost/fusion/adapted/boost_tuple.hpp b/boost/fusion/adapted/boost_tuple.hpp
index 85af576..7ef6568 100644
--- a/boost/fusion/adapted/boost_tuple.hpp
+++ b/boost/fusion/adapted/boost_tuple.hpp
@@ -17,5 +17,7 @@
#include <boost/fusion/adapted/boost_tuple/detail/size_impl.hpp>
#include <boost/fusion/adapted/boost_tuple/detail/at_impl.hpp>
#include <boost/fusion/adapted/boost_tuple/detail/value_at_impl.hpp>
+#include <boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp>
+#include <boost/fusion/adapted/boost_tuple/mpl/clear.hpp>
#endif
diff --git a/boost/fusion/adapted/boost_tuple/boost_tuple_iterator.hpp b/boost/fusion/adapted/boost_tuple/boost_tuple_iterator.hpp
index 416880b..850eef5 100644
--- a/boost/fusion/adapted/boost_tuple/boost_tuple_iterator.hpp
+++ b/boost/fusion/adapted/boost_tuple/boost_tuple_iterator.hpp
@@ -42,12 +42,18 @@ namespace boost { namespace fusion
struct boost_tuple_is_empty<tuples::tuple<> const> : mpl::true_ {};
}
+ template <typename Cons>
+ struct boost_tuple_iterator_identity;
+
template <typename Cons = tuples::null_type>
struct boost_tuple_iterator
: iterator_facade<boost_tuple_iterator<Cons>, forward_traversal_tag>
{
typedef Cons cons_type;
+ typedef boost_tuple_iterator_identity<
+ typename add_const<Cons>::type> identity;
+
BOOST_FUSION_GPU_ENABLED
explicit boost_tuple_iterator(Cons& in_cons)
: cons(in_cons) {}
@@ -98,7 +104,7 @@ namespace boost { namespace fusion
return type(iter.cons.get_tail());
}
};
-
+
template <typename I1, typename I2>
struct distance;
@@ -115,7 +121,7 @@ namespace boost { namespace fusion
>::type
>::type type;
};
-
+
template <typename I1, typename I2>
struct distance
{
@@ -124,7 +130,7 @@ namespace boost { namespace fusion
mpl::int_<0>,
lazy_next_distance<I1, I2>
>::type type;
-
+
BOOST_FUSION_GPU_ENABLED
static type
call(I1 const&, I2 const&)
@@ -133,6 +139,11 @@ namespace boost { namespace fusion
}
};
+ template <typename I1, typename I2>
+ struct equal_to
+ : is_same<typename I1::identity, typename I2::identity>
+ {};
+
private:
// silence MSVC warning C4512: assignment operator could not be generated
boost_tuple_iterator& operator= (boost_tuple_iterator const&);
@@ -144,6 +155,9 @@ namespace boost { namespace fusion
{
typedef Null cons_type;
+ typedef boost_tuple_iterator_identity<
+ typename add_const<Null>::type> identity;
+
template <typename I1, typename I2>
struct equal_to
: mpl::or_<
@@ -193,6 +207,15 @@ namespace boost { namespace fusion
};
}}
+#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
+namespace std
+{
+ template <typename Cons>
+ struct iterator_traits< ::boost::fusion::boost_tuple_iterator<Cons> >
+ { };
+}
+#endif
+
#endif
diff --git a/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp b/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp
new file mode 100644
index 0000000..216fb0a
--- /dev/null
+++ b/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp
@@ -0,0 +1,59 @@
+/*=============================================================================
+ Copyright (c) 2012-2014 Kohei Takahashi
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(BOOST_FUSION_BUILD_CONS_10172012_0130)
+#define BOOST_FUSION_BUILD_CONS_10172012_0130
+
+#include <boost/tuple/tuple.hpp>
+#include <boost/fusion/iterator/equal_to.hpp>
+#include <boost/fusion/iterator/next.hpp>
+#include <boost/fusion/iterator/value_of.hpp>
+#include <boost/fusion/iterator/deref.hpp>
+
+namespace boost { namespace fusion { namespace detail
+{
+ template <
+ typename First
+ , typename Last
+ , bool is_empty = result_of::equal_to<First, Last>::value>
+ struct build_tuple_cons;
+
+ template <typename First, typename Last>
+ struct build_tuple_cons<First, Last, true>
+ {
+ typedef boost::tuples::null_type type;
+
+ BOOST_FUSION_GPU_ENABLED
+ static type
+ call(First const&, Last const&)
+ {
+ return type();
+ }
+ };
+
+ template <typename First, typename Last>
+ struct build_tuple_cons<First, Last, false>
+ {
+ typedef
+ build_tuple_cons<typename result_of::next<First>::type, Last>
+ next_build_tuple_cons;
+
+ typedef boost::tuples::cons<
+ typename result_of::value_of<First>::type
+ , typename next_build_tuple_cons::type>
+ type;
+
+ BOOST_FUSION_GPU_ENABLED
+ static type
+ call(First const& f, Last const& l)
+ {
+ typename result_of::value_of<First>::type v = *f;
+ return type(v, next_build_tuple_cons::call(fusion::next(f), l));
+ }
+ };
+}}}
+
+#endif
diff --git a/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp b/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp
new file mode 100644
index 0000000..8f2fbee
--- /dev/null
+++ b/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp
@@ -0,0 +1,50 @@
+/*=============================================================================
+ Copyright (c) 2012-2014 Kohei Takahashi
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(BOOST_FUSION_CONVERT_IMPL_10172012_0120)
+#define BOOST_FUSION_CONVERT_IMPL_10172012_0120
+
+#include <boost/tuple/tuple.hpp>
+#include <boost/fusion/adapted/boost_tuple/detail/build_cons.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/sequence/intrinsic/end.hpp>
+
+namespace boost { namespace fusion
+{
+ struct boost_tuple_tag;
+
+ namespace extension
+ {
+ template <typename T>
+ struct convert_impl;
+
+ template <>
+ struct convert_impl<boost_tuple_tag>
+ {
+ template <typename Sequence>
+ struct apply
+ {
+ typedef typename
+ detail::build_tuple_cons<
+ typename result_of::begin<Sequence>::type
+ , typename result_of::end<Sequence>::type
+ >
+ build_tuple_cons;
+
+ typedef typename build_tuple_cons::type type;
+
+ BOOST_FUSION_GPU_ENABLED
+ static type
+ call(Sequence& seq)
+ {
+ return build_tuple_cons::call(fusion::begin(seq), fusion::end(seq));
+ }
+ };
+ };
+ }
+}}
+
+#endif
diff --git a/boost/fusion/adapted/boost_tuple/mpl/clear.hpp b/boost/fusion/adapted/boost_tuple/mpl/clear.hpp
new file mode 100644
index 0000000..1cca019
--- /dev/null
+++ b/boost/fusion/adapted/boost_tuple/mpl/clear.hpp
@@ -0,0 +1,23 @@
+/*=============================================================================
+ Copyright (c) 2012 Kohei Takahashi
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(BOOST_FUSION_CLEAR_10172012_0100)
+#define BOOST_FUSION_CLEAR_10172012_0100
+
+#include <boost/mpl/identity.hpp>
+#include <boost/fusion/adapted/boost_tuple/tag_of.hpp>
+
+namespace boost { namespace fusion { namespace detail {
+
+ template <typename Tag>
+ struct clear;
+
+ template <>
+ struct clear<boost_tuple_tag> : mpl::identity<boost::tuple<> > {};
+
+}}}
+
+#endif
diff --git a/boost/fusion/adapted/mpl/detail/at_impl.hpp b/boost/fusion/adapted/mpl/detail/at_impl.hpp
index 3fcafaa..232ca4d 100644
--- a/boost/fusion/adapted/mpl/detail/at_impl.hpp
+++ b/boost/fusion/adapted/mpl/detail/at_impl.hpp
@@ -28,7 +28,7 @@ namespace boost { namespace fusion
{
typedef typename mpl::at<Sequence, N>::type type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence)
{
diff --git a/boost/fusion/adapted/mpl/detail/begin_impl.hpp b/boost/fusion/adapted/mpl/detail/begin_impl.hpp
index c64e282..3f087bd 100644
--- a/boost/fusion/adapted/mpl/detail/begin_impl.hpp
+++ b/boost/fusion/adapted/mpl/detail/begin_impl.hpp
@@ -33,7 +33,7 @@ namespace boost { namespace fusion {
>::type iterator;
typedef mpl_iterator<iterator> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence)
{
diff --git a/boost/fusion/adapted/mpl/detail/end_impl.hpp b/boost/fusion/adapted/mpl/detail/end_impl.hpp
index 579e5a6..7ef13fb 100644
--- a/boost/fusion/adapted/mpl/detail/end_impl.hpp
+++ b/boost/fusion/adapted/mpl/detail/end_impl.hpp
@@ -33,7 +33,7 @@ namespace boost { namespace fusion
>::type iterator;
typedef mpl_iterator<iterator> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence)
{
diff --git a/boost/fusion/adapted/mpl/mpl_iterator.hpp b/boost/fusion/adapted/mpl/mpl_iterator.hpp
index cc03767..87de32a 100644
--- a/boost/fusion/adapted/mpl/mpl_iterator.hpp
+++ b/boost/fusion/adapted/mpl/mpl_iterator.hpp
@@ -38,7 +38,7 @@ namespace boost { namespace fusion
typename Iterator::iterator_type>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator)
{
@@ -53,7 +53,7 @@ namespace boost { namespace fusion
typename mpl::next<typename Iterator::iterator_type>::type>
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator)
{
@@ -68,7 +68,7 @@ namespace boost { namespace fusion
typename mpl::prior<typename Iterator::iterator_type>::type>
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator)
{
@@ -83,7 +83,7 @@ namespace boost { namespace fusion
typename mpl::advance<typename Iterator::iterator_type, N>::type>
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& /*i*/)
{
@@ -104,7 +104,7 @@ namespace boost { namespace fusion
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(I1 const&, I2 const&)
{
@@ -114,6 +114,15 @@ namespace boost { namespace fusion
};
}}
+#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
+namespace std
+{
+ template <typename Iterator>
+ struct iterator_traits< ::boost::fusion::mpl_iterator<Iterator> >
+ { };
+}
+#endif
+
#endif
diff --git a/boost/fusion/adapted/std_tuple.hpp b/boost/fusion/adapted/std_tuple.hpp
index 984a4df..b7e8479 100644
--- a/boost/fusion/adapted/std_tuple.hpp
+++ b/boost/fusion/adapted/std_tuple.hpp
@@ -16,7 +16,9 @@
#include <boost/fusion/adapted/std_tuple/detail/size_impl.hpp>
#include <boost/fusion/adapted/std_tuple/detail/at_impl.hpp>
#include <boost/fusion/adapted/std_tuple/detail/value_at_impl.hpp>
+#include <boost/fusion/adapted/std_tuple/detail/convert_impl.hpp>
#include <boost/fusion/adapted/std_tuple/std_tuple_iterator.hpp>
#include <boost/fusion/adapted/std_tuple/tag_of.hpp>
+#include <boost/fusion/adapted/std_tuple/mpl/clear.hpp>
#endif
diff --git a/boost/fusion/adapted/std_tuple/detail/at_impl.hpp b/boost/fusion/adapted/std_tuple/detail/at_impl.hpp
index cffd442..47a20a2 100644
--- a/boost/fusion/adapted/std_tuple/detail/at_impl.hpp
+++ b/boost/fusion/adapted/std_tuple/detail/at_impl.hpp
@@ -40,7 +40,7 @@ namespace boost { namespace fusion
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence& seq)
{
diff --git a/boost/fusion/adapted/std_tuple/detail/begin_impl.hpp b/boost/fusion/adapted/std_tuple/detail/begin_impl.hpp
index 33613c2..1d5d392 100644
--- a/boost/fusion/adapted/std_tuple/detail/begin_impl.hpp
+++ b/boost/fusion/adapted/std_tuple/detail/begin_impl.hpp
@@ -27,7 +27,7 @@ namespace boost { namespace fusion
{
typedef std_tuple_iterator<Sequence, 0> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence& v)
{
diff --git a/boost/fusion/adapted/std_tuple/detail/build_std_tuple.hpp b/boost/fusion/adapted/std_tuple/detail/build_std_tuple.hpp
new file mode 100644
index 0000000..41e0d43
--- /dev/null
+++ b/boost/fusion/adapted/std_tuple/detail/build_std_tuple.hpp
@@ -0,0 +1,105 @@
+/*=============================================================================
+ Copyright (c) 2014 Kohei Takahashi
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(BOOST_FUSION_BUILD_STD_TUPLE_05292014_0100)
+#define BOOST_FUSION_BUILD_STD_TUPLE_05292014_0100
+
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/fusion/support/config.hpp>
+#include <boost/fusion/iterator/equal_to.hpp>
+#include <boost/fusion/iterator/next.hpp>
+#include <boost/fusion/iterator/value_of.hpp>
+#include <boost/fusion/iterator/deref.hpp>
+#include <tuple>
+
+namespace boost { namespace fusion { namespace detail
+{
+ template <typename First, typename Last
+ , bool is_empty = result_of::equal_to<First, Last>::value
+ >
+ struct build_std_tuple;
+
+ template <typename First, typename Last>
+ struct build_std_tuple<First, Last, true>
+ {
+ typedef std::tuple<> type;
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static type
+ call(First const&, Last const&)
+ {
+ return type();
+ }
+ };
+
+ template <int ...> struct indexed_tuple { };
+
+ template <int, typename = indexed_tuple<>>
+ struct make_indexed_tuple;
+
+ template <int Head, int ...Tail>
+ struct make_indexed_tuple<Head, indexed_tuple<Tail...>>
+ {
+ typedef typename
+ boost::mpl::eval_if_c<
+ (Head == 0),
+ boost::mpl::identity<indexed_tuple<Tail...>>,
+ make_indexed_tuple<Head - 1, indexed_tuple<Head - 1, Tail...>>
+ >::type
+ type;
+ };
+
+ template <typename T, typename Rest>
+ struct push_front_std_tuple;
+
+ template <typename T, typename ...Rest>
+ struct push_front_std_tuple<T, std::tuple<Rest...>>
+ {
+ typedef std::tuple<T, Rest...> type;
+
+ template <int ...I>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static type
+ indexed_call(T const& first, std::tuple<Rest...> const& rest, indexed_tuple<I...>)
+ {
+ return type(first, std::get<I>(rest)...);
+ }
+
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static type
+ call(T const& first, std::tuple<Rest...> const& rest)
+ {
+ typedef typename make_indexed_tuple<sizeof...(Rest)>::type gen;
+ return indexed_call(first, rest, gen());
+ }
+ };
+
+ template <typename First, typename Last>
+ struct build_std_tuple<First, Last, false>
+ {
+ typedef
+ build_std_tuple<typename result_of::next<First>::type, Last>
+ next_build_std_tuple;
+
+ typedef push_front_std_tuple<
+ typename result_of::value_of<First>::type
+ , typename next_build_std_tuple::type>
+ push_front;
+
+ typedef typename push_front::type type;
+
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static type
+ call(First const& f, Last const& l)
+ {
+ typename result_of::value_of<First>::type v = *f;
+ return push_front::call(
+ v, next_build_std_tuple::call(fusion::next(f), l));
+ }
+ };
+}}}
+
+#endif
diff --git a/boost/fusion/adapted/std_tuple/detail/convert_impl.hpp b/boost/fusion/adapted/std_tuple/detail/convert_impl.hpp
new file mode 100644
index 0000000..96b67b1
--- /dev/null
+++ b/boost/fusion/adapted/std_tuple/detail/convert_impl.hpp
@@ -0,0 +1,48 @@
+/*=============================================================================
+ Copyright (c) 2012-2014 Kohei Takahashi
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(BOOST_FUSION_CONVERT_IMPL_10172012_0940)
+#define BOOST_FUSION_CONVERT_IMPL_10172012_0940
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/fusion/adapted/std_tuple/detail/build_std_tuple.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/sequence/intrinsic/end.hpp>
+
+namespace boost { namespace fusion
+{
+ struct std_tuple_tag;
+
+ namespace extension
+ {
+ template <typename T>
+ struct convert_impl;
+
+ template <>
+ struct convert_impl<std_tuple_tag>
+ {
+ template <typename Sequence>
+ struct apply
+ {
+ typedef detail::build_std_tuple<
+ typename result_of::begin<Sequence>::type
+ , typename result_of::end<Sequence>::type
+ > gen;
+
+ typedef typename gen::type type;
+
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static type
+ call(Sequence& seq)
+ {
+ return gen::call(begin(seq), end(seq));
+ }
+ };
+ };
+ }
+}}
+
+#endif
diff --git a/boost/fusion/adapted/std_tuple/detail/end_impl.hpp b/boost/fusion/adapted/std_tuple/detail/end_impl.hpp
index 7704869..500b049 100644
--- a/boost/fusion/adapted/std_tuple/detail/end_impl.hpp
+++ b/boost/fusion/adapted/std_tuple/detail/end_impl.hpp
@@ -31,7 +31,7 @@ namespace boost { namespace fusion
static int const size = std::tuple_size<seq_type>::value;
typedef std_tuple_iterator<Sequence, size> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence& v)
{
diff --git a/boost/fusion/adapted/std_tuple/mpl/clear.hpp b/boost/fusion/adapted/std_tuple/mpl/clear.hpp
new file mode 100644
index 0000000..8712316
--- /dev/null
+++ b/boost/fusion/adapted/std_tuple/mpl/clear.hpp
@@ -0,0 +1,23 @@
+/*=============================================================================
+ Copyright (c) 2012 Kohei Takahashi
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(BOOST_FUSION_CLEAR_10172012_0940)
+#define BOOST_FUSION_CLEAR_10172012_0940
+
+#include <boost/mpl/identity.hpp>
+#include <boost/fusion/adapted/std_tuple/tag_of.hpp>
+
+namespace boost { namespace fusion { namespace detail
+{
+ template <typename Tag>
+ struct clear;
+
+ template <>
+ struct clear<std_tuple_tag> : mpl::identity<std::tuple<> > {};
+
+}}}
+
+#endif
diff --git a/boost/fusion/adapted/std_tuple/std_tuple_iterator.hpp b/boost/fusion/adapted/std_tuple/std_tuple_iterator.hpp
index c4d957e..a3421e0 100644
--- a/boost/fusion/adapted/std_tuple/std_tuple_iterator.hpp
+++ b/boost/fusion/adapted/std_tuple/std_tuple_iterator.hpp
@@ -36,7 +36,8 @@ namespace boost { namespace fusion
typename add_const<Tuple>::type, Index>
identity;
- BOOST_FUSION_GPU_ENABLED explicit std_tuple_iterator(Tuple& tuple)
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ explicit std_tuple_iterator(Tuple& tuple)
: tuple(tuple) {}
Tuple& tuple;
@@ -58,7 +59,7 @@ namespace boost { namespace fusion
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& iter)
{
@@ -73,7 +74,7 @@ namespace boost { namespace fusion
typedef typename Iterator::tuple_type tuple_type;
typedef std_tuple_iterator<tuple_type, index+N::value> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& i)
{
@@ -96,7 +97,7 @@ namespace boost { namespace fusion
{
typedef mpl::int_<Last::index-First::index> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(First const&, Last const&)
{
@@ -106,6 +107,15 @@ namespace boost { namespace fusion
};
}}
+#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
+namespace std
+{
+ template <typename Tuple, int Index>
+ struct iterator_traits< ::boost::fusion::std_tuple_iterator<Tuple, Index> >
+ { };
+}
+#endif
+
#endif
diff --git a/boost/fusion/adapted/struct/adapt_assoc_struct.hpp b/boost/fusion/adapted/struct/adapt_assoc_struct.hpp
index eca77d6..eab4e1b 100644
--- a/boost/fusion/adapted/struct/adapt_assoc_struct.hpp
+++ b/boost/fusion/adapted/struct/adapt_assoc_struct.hpp
@@ -21,6 +21,7 @@
#include <boost/fusion/adapted/struct/detail/extension.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_base.hpp>
+#include <boost/fusion/adapted/struct/detail/adapt_base_assoc_attr_filler.hpp>
#include <boost/fusion/adapted/struct/detail/at_impl.hpp>
#include <boost/fusion/adapted/struct/detail/is_view_impl.hpp>
#include <boost/fusion/adapted/struct/detail/is_sequence_impl.hpp>
@@ -35,32 +36,35 @@
#include <boost/fusion/adapted/struct/detail/key_of_impl.hpp>
#include <boost/fusion/adapted/struct/detail/value_of_data_impl.hpp>
-#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0(X, Y, Z) \
- ((X, Y, Z)) BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_1
-#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_1(X, Y, Z) \
- ((X, Y, Z)) BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0
-#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0_END
-#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_1_END
-
#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_C_BASE( \
- TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,PREFIX,ATTRIBUTE) \
+ TEMPLATE_PARAMS_SEQ,NAME_SEQ,IS_VIEW,I,PREFIX,ATTRIBUTE) \
\
BOOST_FUSION_ADAPT_STRUCT_C_BASE( \
- TEMPLATE_PARAMS_SEQ, NAME_SEQ, I, PREFIX, ATTRIBUTE, 3) \
+ TEMPLATE_PARAMS_SEQ, \
+ NAME_SEQ, \
+ IS_VIEW, \
+ I, \
+ PREFIX, \
+ BOOST_FUSION_ADAPT_STRUCT_WRAPPEDATTR(ATTRIBUTE), \
+ BOOST_FUSION_ADAPT_STRUCT_WRAPPEDATTR_SIZE(ATTRIBUTE), \
+ BOOST_PP_IF(BOOST_PP_LESS( \
+ BOOST_FUSION_ADAPT_STRUCT_WRAPPEDATTR_SIZE(ATTRIBUTE),3), 1, 0)) \
\
template< \
BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ) \
> \
struct struct_assoc_key<BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ), I> \
{ \
- typedef BOOST_PP_TUPLE_ELEM(3, 2, ATTRIBUTE) type; \
+ typedef \
+ BOOST_FUSION_ADAPT_ASSOC_STRUCT_WRAPPEDATTR_GET_KEY(ATTRIBUTE) type; \
};
#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_C( \
- TEMPLATE_PARAMS_SEQ,NAME_SEQ, I, ATTRIBUTE) \
+ TEMPLATE_PARAMS_SEQ,NAME_SEQ,IS_VIEW, I, ATTRIBUTE) \
\
BOOST_FUSION_ADAPT_ASSOC_STRUCT_C_BASE( \
- TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,BOOST_PP_EMPTY,ATTRIBUTE)
+ TEMPLATE_PARAMS_SEQ,NAME_SEQ,IS_VIEW,I,BOOST_PP_EMPTY,ATTRIBUTE)
+
#define BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT( \
TEMPLATE_PARAMS_SEQ, NAME_SEQ, ATTRIBUTES) \
diff --git a/boost/fusion/adapted/struct/adapt_struct.hpp b/boost/fusion/adapted/struct/adapt_struct.hpp
index f60ca03..e96e7c7 100644
--- a/boost/fusion/adapted/struct/adapt_struct.hpp
+++ b/boost/fusion/adapted/struct/adapt_struct.hpp
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
Copyright (c) 2009-2011 Christopher Schmidt
+ Copyright (c) 2013-2014 Damien Buhl
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,8 +11,12 @@
#define BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_HPP
#include <boost/fusion/support/config.hpp>
+#include <boost/preprocessor/config/config.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/empty.hpp>
+#include <boost/preprocessor/control/if.hpp>
+#include <boost/preprocessor/comparison/less.hpp>
+#include <boost/preprocessor/comparison/equal.hpp>
#include <boost/type_traits/add_reference.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/type_traits/add_const.hpp>
@@ -19,6 +24,7 @@
#include <boost/fusion/adapted/struct/detail/extension.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_base.hpp>
+#include <boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp>
#include <boost/fusion/adapted/struct/detail/at_impl.hpp>
#include <boost/fusion/adapted/struct/detail/is_view_impl.hpp>
#include <boost/fusion/adapted/struct/detail/is_sequence_impl.hpp>
@@ -30,43 +36,88 @@
#include <boost/fusion/adapted/struct/detail/value_of_impl.hpp>
#include <boost/fusion/adapted/struct/detail/deref_impl.hpp>
-#define BOOST_FUSION_ADAPT_STRUCT_FILLER_0(X, Y) \
- ((X, Y)) BOOST_FUSION_ADAPT_STRUCT_FILLER_1
-#define BOOST_FUSION_ADAPT_STRUCT_FILLER_1(X, Y) \
- ((X, Y)) BOOST_FUSION_ADAPT_STRUCT_FILLER_0
-#define BOOST_FUSION_ADAPT_STRUCT_FILLER_0_END
-#define BOOST_FUSION_ADAPT_STRUCT_FILLER_1_END
-
-#define BOOST_FUSION_ADAPT_STRUCT_C(TEMPLATE_PARAMS_SEQ, NAME_SEQ, I, ATTRIBUTE)\
- BOOST_FUSION_ADAPT_STRUCT_C_BASE( \
- TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,BOOST_PP_EMPTY,ATTRIBUTE,2)
-
-#define BOOST_FUSION_ADAPT_TPL_STRUCT(TEMPLATE_PARAMS_SEQ,NAME_SEQ, ATTRIBUTES) \
- BOOST_FUSION_ADAPT_STRUCT_BASE( \
- (1)TEMPLATE_PARAMS_SEQ, \
- (1)NAME_SEQ, \
- struct_tag, \
- 0, \
- ((0,0)) BOOST_PP_CAT( \
- BOOST_FUSION_ADAPT_STRUCT_FILLER_0 ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_STRUCT_C)
-
-#define BOOST_FUSION_ADAPT_STRUCT(NAME, ATTRIBUTES) \
- BOOST_FUSION_ADAPT_STRUCT_BASE( \
- (0), \
- (0)(NAME), \
- struct_tag, \
- 0, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_FILLER_0(0,0)ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_STRUCT_C)
-
-#define BOOST_FUSION_ADAPT_STRUCT_AS_VIEW(NAME, ATTRIBUTES) \
- BOOST_FUSION_ADAPT_STRUCT_BASE( \
- (0), \
- (0)(NAME), \
- struct_tag, \
- 1, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_FILLER_0(0,0)ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_STRUCT_C)
+#define BOOST_FUSION_ADAPT_STRUCT_C( \
+ TEMPLATE_PARAMS_SEQ, NAME_SEQ, IS_VIEW, I, ATTRIBUTE) \
+ BOOST_FUSION_ADAPT_STRUCT_C_BASE( \
+ TEMPLATE_PARAMS_SEQ, \
+ NAME_SEQ, \
+ IS_VIEW, \
+ I, \
+ BOOST_PP_IF(IS_VIEW, BOOST_FUSION_PROXY_PREFIX, BOOST_PP_EMPTY), \
+ BOOST_FUSION_ADAPT_STRUCT_WRAPPEDATTR(ATTRIBUTE), \
+ BOOST_FUSION_ADAPT_STRUCT_WRAPPEDATTR_SIZE(ATTRIBUTE), \
+ BOOST_PP_IF( \
+ BOOST_PP_LESS( \
+ BOOST_FUSION_ADAPT_STRUCT_WRAPPEDATTR_SIZE(ATTRIBUTE), 2) \
+ , 1, 0))
+
+
+
+#if BOOST_PP_VARIADICS
+
+# define BOOST_FUSION_ADAPT_TPL_STRUCT(TEMPLATE_PARAMS_SEQ,NAME_SEQ, ...) \
+ BOOST_FUSION_ADAPT_STRUCT_BASE( \
+ (1)TEMPLATE_PARAMS_SEQ, \
+ (1)NAME_SEQ, \
+ struct_tag, \
+ 0, \
+ BOOST_FUSION_ADAPT_STRUCT_ATTRIBUTES_FILLER(__VA_ARGS__), \
+ BOOST_FUSION_ADAPT_STRUCT_C)
+
+# define BOOST_FUSION_ADAPT_STRUCT(NAME, ...) \
+ BOOST_FUSION_ADAPT_STRUCT_BASE( \
+ (0), \
+ (0)(NAME), \
+ struct_tag, \
+ 0, \
+ BOOST_FUSION_ADAPT_STRUCT_ATTRIBUTES_FILLER(__VA_ARGS__), \
+ BOOST_FUSION_ADAPT_STRUCT_C)
+
+# define BOOST_FUSION_ADAPT_STRUCT_AS_VIEW(NAME, ...) \
+ BOOST_FUSION_ADAPT_STRUCT_BASE( \
+ (0), \
+ (0)(NAME), \
+ struct_tag, \
+ 1, \
+ BOOST_FUSION_ADAPT_STRUCT_ATTRIBUTES_FILLER(__VA_ARGS__), \
+ BOOST_FUSION_ADAPT_STRUCT_C)
+
+#else // BOOST_PP_VARIADICS
+
+# define BOOST_FUSION_ADAPT_TPL_STRUCT( \
+ TEMPLATE_PARAMS_SEQ,NAME_SEQ, ATTRIBUTES) \
+ BOOST_FUSION_ADAPT_STRUCT_BASE( \
+ (1)TEMPLATE_PARAMS_SEQ, \
+ (1)NAME_SEQ, \
+ struct_tag, \
+ 0, \
+ BOOST_PP_CAT( \
+ BOOST_FUSION_ADAPT_STRUCT_FILLER_0(0,0)ATTRIBUTES,_END), \
+ BOOST_FUSION_ADAPT_STRUCT_C)
+
+# define BOOST_FUSION_ADAPT_STRUCT(NAME, ATTRIBUTES) \
+ BOOST_FUSION_ADAPT_STRUCT_BASE( \
+ (0), \
+ (0)(NAME), \
+ struct_tag, \
+ 0, \
+ BOOST_PP_CAT( \
+ BOOST_FUSION_ADAPT_STRUCT_FILLER_0(0,0)ATTRIBUTES, \
+ _END), \
+ BOOST_FUSION_ADAPT_STRUCT_C)
+
+# define BOOST_FUSION_ADAPT_STRUCT_AS_VIEW(NAME, ATTRIBUTES) \
+ BOOST_FUSION_ADAPT_STRUCT_BASE( \
+ (0), \
+ (0)(NAME), \
+ struct_tag, \
+ 1, \
+ BOOST_PP_CAT( \
+ BOOST_FUSION_ADAPT_STRUCT_FILLER_0(0,0)ATTRIBUTES, \
+ _END), \
+ BOOST_FUSION_ADAPT_STRUCT_C)
+
+
+#endif // BOOST_PP_VARIADICS
#endif
diff --git a/boost/fusion/adapted/struct/adapt_struct_named.hpp b/boost/fusion/adapted/struct/adapt_struct_named.hpp
index 3f29f3a..791fb5b 100644
--- a/boost/fusion/adapted/struct/adapt_struct_named.hpp
+++ b/boost/fusion/adapted/struct/adapt_struct_named.hpp
@@ -15,26 +15,41 @@
#include <boost/fusion/adapted/struct/detail/proxy_type.hpp>
#include <boost/preprocessor/empty.hpp>
-#define BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_0(X, Y) \
- (X, obj.Y) BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_1
-#define BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_1(X, Y) \
- (X, obj.Y) BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_0
-#define BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_0_END
-#define BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_1_END
-
-#define BOOST_FUSION_ADAPT_STRUCT_NAMED_NS( \
- WRAPPED_TYPE, NAMESPACE_SEQ, NAME, ATTRIBUTES) \
+#ifdef BOOST_PP_VARIADICS
+
+# define BOOST_FUSION_ADAPT_STRUCT_NAMED_NS( \
+ WRAPPED_TYPE, NAMESPACE_SEQ, NAME, ...) \
+ \
+ BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \
+ WRAPPED_TYPE,(0)NAMESPACE_SEQ,NAME) \
+ \
+ BOOST_FUSION_ADAPT_STRUCT_AS_VIEW( \
+ BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION( \
+ (0)NAMESPACE_SEQ)NAME, \
+ __VA_ARGS__)
+
+# define BOOST_FUSION_ADAPT_STRUCT_NAMED(WRAPPED_TYPE, NAME, ...) \
+ BOOST_FUSION_ADAPT_STRUCT_NAMED_NS( \
+ WRAPPED_TYPE,(boost)(fusion)(adapted),NAME,__VA_ARGS__)
+
+
+#else // BOOST_PP_VARIADICS
+
+# define BOOST_FUSION_ADAPT_STRUCT_NAMED_NS( \
+ WRAPPED_TYPE, NAMESPACE_SEQ, NAME, ATTRIBUTES) \
\
- BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \
- WRAPPED_TYPE,(0)NAMESPACE_SEQ,NAME) \
+ BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \
+ WRAPPED_TYPE,(0)NAMESPACE_SEQ,NAME) \
\
- BOOST_FUSION_ADAPT_STRUCT_AS_VIEW( \
- BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION((0)NAMESPACE_SEQ)NAME, \
- BOOST_PP_CAT( \
- BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_0 ATTRIBUTES,_END))
-
-#define BOOST_FUSION_ADAPT_STRUCT_NAMED(WRAPPED_TYPE, NAME, ATTRIBUTES) \
- BOOST_FUSION_ADAPT_STRUCT_NAMED_NS( \
- WRAPPED_TYPE,(boost)(fusion)(adapted),NAME,ATTRIBUTES)
+ BOOST_FUSION_ADAPT_STRUCT_AS_VIEW( \
+ BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION( \
+ (0)NAMESPACE_SEQ)NAME, \
+ ATTRIBUTES)
+
+# define BOOST_FUSION_ADAPT_STRUCT_NAMED(WRAPPED_TYPE, NAME, ATTRIBUTES) \
+ BOOST_FUSION_ADAPT_STRUCT_NAMED_NS( \
+ WRAPPED_TYPE,(boost)(fusion)(adapted),NAME,ATTRIBUTES)
+
+#endif
#endif
diff --git a/boost/fusion/adapted/struct/define_assoc_struct.hpp b/boost/fusion/adapted/struct/define_assoc_struct.hpp
index 1f5ce8d..f4a3679 100644
--- a/boost/fusion/adapted/struct/define_assoc_struct.hpp
+++ b/boost/fusion/adapted/struct/define_assoc_struct.hpp
@@ -12,6 +12,13 @@
#include <boost/fusion/adapted/struct/adapt_assoc_struct.hpp>
#include <boost/fusion/adapted/struct/detail/define_struct.hpp>
+#define BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_0(X, Y, Z) \
+ ((X, Y, Z)) BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_1
+#define BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_1(X, Y, Z) \
+ ((X, Y, Z)) BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_0
+#define BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_0_END
+#define BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_1_END
+
#define BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT( \
TEMPLATE_PARAMS_SEQ, NAMESPACE_SEQ, NAME, ATTRIBUTES) \
\
@@ -20,7 +27,7 @@
(0)NAMESPACE_SEQ, \
NAME, \
BOOST_PP_CAT( \
- BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0(0,0,0)ATTRIBUTES,_END), \
+ BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_0(0,0,0)ATTRIBUTES,_END), \
3) \
\
BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT( \
@@ -34,7 +41,7 @@
(0)NAMESPACE_SEQ, \
NAME, \
BOOST_PP_CAT( \
- BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0(0,0,0)ATTRIBUTES,_END), \
+ BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_0(0,0,0)ATTRIBUTES,_END), \
3) \
\
BOOST_FUSION_ADAPT_ASSOC_STRUCT( \
diff --git a/boost/fusion/adapted/struct/define_struct.hpp b/boost/fusion/adapted/struct/define_struct.hpp
index fa1f549..2978543 100644
--- a/boost/fusion/adapted/struct/define_struct.hpp
+++ b/boost/fusion/adapted/struct/define_struct.hpp
@@ -19,7 +19,7 @@
TEMPLATE_PARAMS_SEQ, \
(0)NAMESPACE_SEQ, \
NAME, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_FILLER_0(0,0)ATTRIBUTES,_END), \
+ BOOST_PP_CAT(BOOST_FUSION_DEFINE_STRUCT_FILLER_0(0,0)ATTRIBUTES,_END), \
2) \
\
BOOST_FUSION_ADAPT_TPL_STRUCT( \
@@ -32,7 +32,7 @@
BOOST_FUSION_DEFINE_STRUCT_IMPL( \
(0)NAMESPACE_SEQ, \
NAME, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_FILLER_0(0,0)ATTRIBUTES,_END), \
+ BOOST_PP_CAT(BOOST_FUSION_DEFINE_STRUCT_FILLER_0(0,0)ATTRIBUTES,_END), \
2) \
\
BOOST_FUSION_ADAPT_STRUCT( \
diff --git a/boost/fusion/include/adapt_assoc_class_named.hpp b/boost/fusion/adapted/struct/detail/adapt_auto.hpp
index 3c04183..5178150 100644
--- a/boost/fusion/include/adapt_assoc_class_named.hpp
+++ b/boost/fusion/adapted/struct/detail/adapt_auto.hpp
@@ -1,14 +1,15 @@
/*=============================================================================
- Copyright (c) 2010 Christopher Schmidt
+ Copyright (c) 2013-2014 Damien Buhl
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
-#ifndef BOOST_FUSION_INCLUDE_ADAPT_ASSOC_CLASS_NAMED_HPP
-#define BOOST_FUSION_INCLUDE_ADAPT_ASSOC_CLASS_NAMED_HPP
+#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_ADAPT_AUTO_HPP
+#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_ADAPT_AUTO_HPP
-#include <boost/fusion/support/config.hpp>
-#include <boost/fusion/adapted/class/adapt_assoc_class_named.hpp>
+#include <boost/preprocessor/empty.hpp>
+
+#define BOOST_FUSION_ADAPT_AUTO BOOST_PP_EMPTY()
#endif
diff --git a/boost/fusion/adapted/struct/detail/adapt_base.hpp b/boost/fusion/adapted/struct/detail/adapt_base.hpp
index db702ae..8ec467a 100644
--- a/boost/fusion/adapted/struct/detail/adapt_base.hpp
+++ b/boost/fusion/adapted/struct/detail/adapt_base.hpp
@@ -2,6 +2,7 @@
Copyright (c) 2001-2009 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
Copyright (c) 2009-2011 Christopher Schmidt
+ Copyright (c) 2013-2014 Damien Buhl
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -13,6 +14,8 @@
#include <boost/fusion/support/config.hpp>
#include <boost/config.hpp>
#include <boost/fusion/support/tag_of_fwd.hpp>
+#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
+#include <boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp>
#include <boost/preprocessor/empty.hpp>
#include <boost/preprocessor/stringize.hpp>
@@ -25,12 +28,16 @@
#include <boost/preprocessor/tuple/eat.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/preprocessor/comparison/less.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/mpl/tag.hpp>
#include <boost/mpl/eval_if.hpp>
#include <boost/mpl/identity.hpp>
#include <boost/type_traits/add_const.hpp>
+#include <boost/typeof/typeof.hpp>
+
+
#define BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME_TEMPLATE_PARAMS(SEQ) \
BOOST_PP_SEQ_HEAD(SEQ)<BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_TAIL(SEQ))> \
BOOST_PP_EMPTY()
@@ -55,6 +62,49 @@
BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS_IMPL, \
BOOST_PP_TUPLE_EAT(1))(SEQ)
+#ifdef BOOST_MSVC
+# define BOOST_FUSION_ATTRIBUTE_TYPEOF( \
+ NAME_SEQ, ATTRIBUTE, ATTRIBUTE_TUPEL_SIZE, PREFIX, TEMPLATE_PARAMS_SEQ) \
+ \
+ BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAMS( \
+ TEMPLATE_PARAMS_SEQ) \
+ \
+ struct deduced_attr_type { \
+ static const BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)& obj; \
+ typedef \
+ BOOST_PP_IF(BOOST_FUSION_ADAPT_IS_TPL(TEMPLATE_PARAMS_SEQ), typename, ) \
+ BOOST_TYPEOF( PREFIX() obj.BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, \
+ 0, ATTRIBUTE)) \
+ type; \
+ }; \
+ \
+ typedef \
+ BOOST_PP_IF(BOOST_FUSION_ADAPT_IS_TPL(TEMPLATE_PARAMS_SEQ), typename, ) \
+ deduced_attr_type::type attribute_type;
+
+#else
+# define BOOST_FUSION_ATTRIBUTE_TYPEOF( \
+ NAME_SEQ, ATTRIBUTE, ATTRIBUTE_TUPEL_SIZE, PREFIX, TEMPLATE_PARAMS_SEQ) \
+ \
+ struct deduced_attr_type { \
+ static const BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)& obj; \
+ typedef BOOST_TYPEOF( \
+ PREFIX() obj.BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 0, ATTRIBUTE)) \
+ type; \
+ }; \
+ \
+ typedef \
+ BOOST_PP_IF(BOOST_FUSION_ADAPT_IS_TPL(TEMPLATE_PARAMS_SEQ), typename, ) \
+ deduced_attr_type::type attribute_type;
+
+#endif
+
+#define BOOST_FUSION_ATTRIBUTE_GIVENTYPE( \
+ NAME_SEQ, ATTRIBUTE, ATTRIBUTE_TUPEL_SIZE, PREFIX, TEMPLATE_PARAMS_SEQ) \
+ typedef \
+ BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 0, ATTRIBUTE) attribute_type;
+
+
#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
# define BOOST_FUSION_ADAPT_STRUCT_TAG_OF_SPECIALIZATION( \
MODIFIER, TEMPLATE_PARAMS_SEQ, NAME_SEQ, TAG) \
@@ -83,9 +133,10 @@
#endif
#define BOOST_FUSION_ADAPT_STRUCT_BASE_UNPACK_AND_CALL(R,DATA,I,ATTRIBUTE) \
- BOOST_PP_TUPLE_ELEM(3,0,DATA)( \
- BOOST_PP_TUPLE_ELEM(3,1,DATA), \
- BOOST_PP_TUPLE_ELEM(3,2,DATA), \
+ BOOST_PP_TUPLE_ELEM(4,0,DATA)( \
+ BOOST_PP_TUPLE_ELEM(4,1,DATA), \
+ BOOST_PP_TUPLE_ELEM(4,2,DATA), \
+ BOOST_PP_TUPLE_ELEM(4,3,DATA), \
I, \
ATTRIBUTE)
@@ -107,7 +158,9 @@
#endif
#define BOOST_FUSION_ADAPT_STRUCT_C_BASE( \
- TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,PREFIX,ATTRIBUTE,ATTRIBUTE_TUPEL_SIZE) \
+ TEMPLATE_PARAMS_SEQ,NAME_SEQ,IS_VIEW, \
+ I,PREFIX,ATTRIBUTE,ATTRIBUTE_TUPEL_SIZE, \
+ DEDUCE_TYPE) \
\
template< \
BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ) \
@@ -117,9 +170,14 @@
, I \
> \
{ \
- typedef \
- BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 0, ATTRIBUTE) \
- attribute_type; \
+ BOOST_PP_IF(DEDUCE_TYPE, \
+ BOOST_FUSION_ATTRIBUTE_TYPEOF, BOOST_FUSION_ATTRIBUTE_GIVENTYPE)( \
+ NAME_SEQ, \
+ ATTRIBUTE, \
+ ATTRIBUTE_TUPEL_SIZE, \
+ PREFIX, \
+ TEMPLATE_PARAMS_SEQ) \
+ \
BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAMS( \
TEMPLATE_PARAMS_SEQ) \
\
@@ -138,12 +196,13 @@
>::type \
type; \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
static type \
call(Seq& seq) \
{ \
return seq.PREFIX() \
- BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 1, ATTRIBUTE); \
+ BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, \
+ BOOST_PP_IF(DEDUCE_TYPE, 0, 1), ATTRIBUTE); \
} \
}; \
}; \
@@ -158,12 +217,14 @@
{ \
typedef char const* type; \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
static type \
call() \
{ \
return BOOST_PP_STRINGIZE( \
- BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE,1,ATTRIBUTE)); \
+ BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, \
+ BOOST_PP_IF(DEDUCE_TYPE, 0, 1), \
+ ATTRIBUTE)); \
} \
};
@@ -195,7 +256,7 @@ namespace boost
BOOST_PP_TUPLE_EAT(4))( \
1, \
BOOST_FUSION_ADAPT_STRUCT_BASE_UNPACK_AND_CALL, \
- (ATTRIBUTES_CALLBACK,TEMPLATE_PARAMS_SEQ,NAME_SEQ), \
+ (ATTRIBUTES_CALLBACK,TEMPLATE_PARAMS_SEQ,NAME_SEQ, IS_VIEW),\
BOOST_PP_SEQ_TAIL(ATTRIBUTES_SEQ)) \
\
template< \
diff --git a/boost/fusion/adapted/struct/detail/adapt_base_assoc_attr_filler.hpp b/boost/fusion/adapted/struct/detail/adapt_base_assoc_attr_filler.hpp
new file mode 100644
index 0000000..c75e83c
--- /dev/null
+++ b/boost/fusion/adapted/struct/detail/adapt_base_assoc_attr_filler.hpp
@@ -0,0 +1,63 @@
+/*=============================================================================
+ Copyright (c) 2013-2014 Damien Buhl
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_ADAPT_BASE_ASSOC_ATTR_FILLER_HPP
+#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_ADAPT_BASE_ASSOC_ATTR_FILLER_HPP
+
+#include <boost/config.hpp>
+
+#include <boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp>
+
+#include <boost/preprocessor/control/if.hpp>
+#include <boost/preprocessor/arithmetic/sub.hpp>
+#include <boost/preprocessor/variadic/size.hpp>
+#include <boost/preprocessor/empty.hpp>
+#include <boost/preprocessor/facilities/is_empty.hpp>
+
+#if BOOST_PP_VARIADICS
+
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0(...) \
+ BOOST_FUSION_ADAPT_ASSOC_STRUCT_WRAP_ATTR(__VA_ARGS__) \
+ BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_1
+
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_1(...) \
+ BOOST_FUSION_ADAPT_ASSOC_STRUCT_WRAP_ATTR(__VA_ARGS__) \
+ BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0
+
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_WRAP_ATTR(...) \
+ ((BOOST_PP_VARIADIC_SIZE(__VA_ARGS__), (__VA_ARGS__)))
+
+#else // BOOST_PP_VARIADICS
+
+
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0(X, Y, Z) \
+ BOOST_FUSION_ADAPT_ASSOC_STRUCT_WRAP_ATTR(X, Y, Z) \
+ BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_1
+
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_1(X, Y, Z) \
+ BOOST_FUSION_ADAPT_ASSOC_STRUCT_WRAP_ATTR(X, Y, Z) \
+ BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0
+
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_WRAP_ATTR(X, Y, Z) \
+ BOOST_PP_IF(BOOST_PP_IS_EMPTY(X), \
+ ((2, (Y,Z))), \
+ ((3, (X,Y,Z))) \
+ )
+
+#endif // BOOST_PP_VARIADICS
+
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0_END
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_1_END
+
+
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_WRAPPEDATTR_GET_KEY(ATTRIBUTE) \
+ BOOST_PP_TUPLE_ELEM( \
+ BOOST_FUSION_ADAPT_STRUCT_WRAPPEDATTR_SIZE(ATTRIBUTE), \
+ BOOST_PP_SUB(BOOST_FUSION_ADAPT_STRUCT_WRAPPEDATTR_SIZE(ATTRIBUTE), 1), \
+ BOOST_FUSION_ADAPT_STRUCT_WRAPPEDATTR(ATTRIBUTE))
+
+#endif
diff --git a/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp b/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp
new file mode 100644
index 0000000..69d5b20
--- /dev/null
+++ b/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp
@@ -0,0 +1,64 @@
+/*=============================================================================
+ Copyright (c) 2013-2014 Damien Buhl
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_ADAPT_BASE_ATTR_FILLER_HPP
+#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_ADAPT_BASE_ATTR_FILLER_HPP
+
+#include <boost/config.hpp>
+#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
+
+#include <boost/preprocessor/empty.hpp>
+#include <boost/preprocessor/tuple/size.hpp>
+#include <boost/preprocessor/tuple/elem.hpp>
+#include <boost/preprocessor/facilities/is_empty.hpp>
+#include <boost/preprocessor/variadic/to_seq.hpp>
+#include <boost/preprocessor/seq/for_each.hpp>
+#include <boost/preprocessor/seq/push_front.hpp>
+
+
+#define BOOST_FUSION_ADAPT_STRUCT_FILLER_0(X, Y) \
+ BOOST_FUSION_ADAPT_STRUCT_WRAP_ATTR(X,Y) \
+ BOOST_FUSION_ADAPT_STRUCT_FILLER_1
+
+#define BOOST_FUSION_ADAPT_STRUCT_FILLER_1(X, Y) \
+ BOOST_FUSION_ADAPT_STRUCT_WRAP_ATTR(X,Y) \
+ BOOST_FUSION_ADAPT_STRUCT_FILLER_0
+
+#define BOOST_FUSION_ADAPT_STRUCT_FILLER_0_END
+#define BOOST_FUSION_ADAPT_STRUCT_FILLER_1_END
+
+#define BOOST_FUSION_ADAPT_STRUCT_WRAP_ATTR(X, Y) \
+ BOOST_PP_IF(BOOST_PP_IS_EMPTY(X), \
+ ((1, (Y))), \
+ ((2, (X,Y))) \
+ )
+
+#define BOOST_FUSION_ADAPT_STRUCT_WRAPPEDATTR_SIZE(ATTRIBUTE) \
+ BOOST_PP_TUPLE_ELEM(2, 0, ATTRIBUTE)
+
+#define BOOST_FUSION_ADAPT_STRUCT_WRAPPEDATTR(ATTRIBUTE) \
+ BOOST_PP_TUPLE_ELEM(2, 1, ATTRIBUTE)
+
+
+#if BOOST_PP_VARIADICS
+
+# define BOOST_FUSION_ADAPT_STRUCT_ATTRIBUTES_FILLER_OP(r, unused, elem) \
+ BOOST_PP_IF(BOOST_FUSION_PP_IS_SEQ(elem), \
+ BOOST_PP_CAT( BOOST_FUSION_ADAPT_STRUCT_FILLER_0 elem ,_END), \
+ BOOST_FUSION_ADAPT_STRUCT_WRAP_ATTR(BOOST_FUSION_ADAPT_AUTO, \
+ elem))
+
+# define BOOST_FUSION_ADAPT_STRUCT_ATTRIBUTES_FILLER(...) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PP_SEQ_FOR_EACH( \
+ BOOST_FUSION_ADAPT_STRUCT_ATTRIBUTES_FILLER_OP, \
+ unused, BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__)), \
+ (0,0))
+
+#endif // BOOST_PP_VARIADICS
+
+#endif
diff --git a/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp b/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp
new file mode 100644
index 0000000..2b54a2c
--- /dev/null
+++ b/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp
@@ -0,0 +1,14 @@
+/*=============================================================================
+ Copyright (c) 2013-2014 Damien Buhl
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_ADAPT_IS_TPL_HPP
+#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_ADAPT_IS_TPL_HPP
+
+#define BOOST_FUSION_ADAPT_IS_TPL(TEMPLATE_PARAMS_SEQ) \
+ BOOST_PP_SEQ_HEAD(TEMPLATE_PARAMS_SEQ)
+
+#endif
diff --git a/boost/fusion/adapted/struct/detail/begin_impl.hpp b/boost/fusion/adapted/struct/detail/begin_impl.hpp
index 9cb6871..f67df3a 100644
--- a/boost/fusion/adapted/struct/detail/begin_impl.hpp
+++ b/boost/fusion/adapted/struct/detail/begin_impl.hpp
@@ -33,7 +33,7 @@ namespace boost { namespace fusion { namespace extension
>
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Seq& seq)
{
@@ -57,7 +57,7 @@ namespace boost { namespace fusion { namespace extension
>
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Seq& seq)
{
diff --git a/boost/fusion/adapted/struct/detail/define_struct.hpp b/boost/fusion/adapted/struct/detail/define_struct.hpp
index 44d99f0..2554292 100644
--- a/boost/fusion/adapted/struct/detail/define_struct.hpp
+++ b/boost/fusion/adapted/struct/detail/define_struct.hpp
@@ -34,6 +34,13 @@
#include <boost/type_traits/is_convertible.hpp>
#include <boost/utility/enable_if.hpp>
+#define BOOST_FUSION_DEFINE_STRUCT_FILLER_0(X, Y) \
+ ((X, Y)) BOOST_FUSION_DEFINE_STRUCT_FILLER_1
+#define BOOST_FUSION_DEFINE_STRUCT_FILLER_1(X, Y) \
+ ((X, Y)) BOOST_FUSION_DEFINE_STRUCT_FILLER_0
+#define BOOST_FUSION_DEFINE_STRUCT_FILLER_0_END
+#define BOOST_FUSION_DEFINE_STRUCT_FILLER_1_END
+
#define BOOST_FUSION_DEFINE_STRUCT_COPY_CTOR_FILLER_I( \
R, ATTRIBUTE_TUPEL_SIZE, I, ATTRIBUTE) \
\
@@ -62,7 +69,7 @@
ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
\
template<typename Seq> \
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
self_type& \
operator=(Seq const& seq) \
{ \
@@ -121,7 +128,7 @@
ATTRIBUTE_TUPEL_SIZE, \
ATTRIBUTES_SEQ) \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME() \
: BOOST_PP_SEQ_FOR_EACH_I_R( \
1, \
@@ -130,7 +137,7 @@
ATTRIBUTES_SEQ) \
{} \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME(self_type const& other_self) \
: BOOST_PP_SEQ_FOR_EACH_I_R( \
1, \
@@ -140,7 +147,7 @@
{} \
\
template<typename Seq> \
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME(Seq const& seq \
BOOST_PP_IF( \
BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(ATTRIBUTES_SEQ)), \
@@ -160,7 +167,7 @@
#define BOOST_FUSION_DEFINE_STRUCT_CTOR_1( \
NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
explicit \
NAME(boost::call_traits< \
BOOST_PP_TUPLE_ELEM( \
@@ -173,7 +180,7 @@
#define BOOST_FUSION_DEFINE_TPL_STRUCT_CTOR_1( \
TEMPLATE_PARAMS_SEQ, NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
explicit \
NAME(typename boost::call_traits< \
typename boost::fusion::detail::get_first_arg< \
@@ -210,7 +217,7 @@
#define BOOST_FUSION_DEFINE_TPL_STRUCT_CTOR_N( \
TEMPLATE_PARAMS_SEQ, NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME(BOOST_PP_SEQ_FOR_EACH_I_R( \
1, \
BOOST_FUSION_DEFINE_TPL_STRUCT_CTOR_ARG_I, \
@@ -238,7 +245,7 @@
#define BOOST_FUSION_DEFINE_STRUCT_CTOR_N( \
NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME(BOOST_PP_SEQ_FOR_EACH_I_R( \
1, \
BOOST_FUSION_DEFINE_STRUCT_CTOR_ARG_I, \
@@ -280,12 +287,12 @@
NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
\
template<typename Seq> \
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME(Seq const&) \
{} \
\
template<typename Seq> \
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
self_type& \
operator=(Seq const& seq) \
{ \
diff --git a/boost/fusion/adapted/struct/detail/define_struct_inline.hpp b/boost/fusion/adapted/struct/detail/define_struct_inline.hpp
index d720fcf..a5a3ae0 100644
--- a/boost/fusion/adapted/struct/detail/define_struct_inline.hpp
+++ b/boost/fusion/adapted/struct/detail/define_struct_inline.hpp
@@ -66,6 +66,7 @@
#define BOOST_FUSION_IGNORE_2(ARG1, ARG2)
#define BOOST_FUSION_MAKE_COPY_CONSTRUCTOR(NAME, ATTRIBUTES_SEQ) \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME(BOOST_PP_SEQ_FOR_EACH_I( \
BOOST_FUSION_MAKE_CONST_REF_PARAM, \
~, \
@@ -113,7 +114,7 @@
struct deref<SPEC_TYPE, N> > \
{ \
typedef typename boost_fusion_detail_Sq::t##N##_type TYPE_QUAL& type; \
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
static type call(CALL_ARG_TYPE, N> const& iter) \
{ \
return iter.seq_.BOOST_PP_TUPLE_ELEM(2, 1, ATTRIBUTE); \
@@ -163,7 +164,7 @@
typename boost_fusion_detail_Sq::t##N##_type& \
>::type type; \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
static type call(boost_fusion_detail_Sq& sq) \
{ \
return sq. BOOST_PP_TUPLE_ELEM(2, 1, ATTRIBUTE); \
@@ -208,7 +209,7 @@
result_raw_type \
>::type type; \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
static type call(iterator_raw_type const& iter) \
{ \
return boost::fusion::at_c<index>(iter.ref_vec); \
@@ -301,7 +302,7 @@
#define BOOST_FUSION_DEFINE_STRUCT_INLINE_MEMBERS(NAME, ATTRIBUTES) \
BOOST_FUSION_DEFINE_STRUCT_MEMBERS_IMPL( \
NAME, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_FILLER_0 ATTRIBUTES,_END))
+ BOOST_PP_CAT(BOOST_FUSION_DEFINE_STRUCT_FILLER_0 ATTRIBUTES,_END))
// Note: can't compute BOOST_PP_SEQ_SIZE(ATTRIBUTES_SEQ) directly because
// ATTRIBUTES_SEQ may be empty and calling BOOST_PP_SEQ_SIZE on an empty
@@ -315,7 +316,7 @@
#define BOOST_FUSION_DEFINE_STRUCT_INLINE_ITERATOR(NAME, ATTRIBUTES) \
BOOST_FUSION_DEFINE_STRUCT_ITERATOR_IMPL( \
NAME, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_FILLER_0 ATTRIBUTES,_END))
+ BOOST_PP_CAT(BOOST_FUSION_DEFINE_STRUCT_FILLER_0 ATTRIBUTES,_END))
#define BOOST_FUSION_DEFINE_STRUCT_ITERATOR_IMPL(NAME, ATTRIBUTES_SEQ) \
BOOST_FUSION_DEFINE_STRUCT_INLINE_ITERATOR_IMPL_IMPL( \
@@ -336,7 +337,7 @@
typedef boost::mpl::int_<N> index; \
typedef boost_fusion_detail_Seq sequence_type; \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
BOOST_FUSION_ITERATOR_NAME(NAME)(boost_fusion_detail_Seq& seq) \
: seq_(seq) \
BOOST_FUSION_DEFINE_ITERATOR_WKND_INIT_LIST_ENTRIES( \
@@ -359,7 +360,7 @@
boost_fusion_detail_It::index::value + 1 \
> type; \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
static type call(boost_fusion_detail_It const& it) \
{ \
return type(it.seq_); \
@@ -374,7 +375,7 @@
boost_fusion_detail_It::index::value - 1 \
> type; \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
static type call(boost_fusion_detail_It const& it) \
{ \
return type(it.seq_); \
@@ -392,7 +393,7 @@
typename boost_fusion_detail_It1::index \
>::type type; \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
static type call(boost_fusion_detail_It1 const& /* it1 */, \
boost_fusion_detail_It2 const& /* it2 */) \
{ \
@@ -412,7 +413,7 @@
+ boost_fusion_detail_M::value \
> type; \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
static type call(boost_fusion_detail_It const& it) \
{ \
return type(it.seq_); \
@@ -445,14 +446,14 @@
(NAME, ATTRIBUTES_SEQ) \
\
template <typename boost_fusion_detail_Seq> \
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME(const boost_fusion_detail_Seq& rhs) \
{ \
boost::fusion::copy(rhs, *this); \
} \
\
template <typename boost_fusion_detail_Seq> \
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME& operator=(const boost_fusion_detail_Seq& rhs) \
{ \
boost::fusion::copy(rhs, *this); \
@@ -465,7 +466,7 @@
typedef BOOST_FUSION_ITERATOR_NAME(NAME)<boost_fusion_detail_Sq, 0> \
type; \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
static type call(boost_fusion_detail_Sq& sq) \
{ \
return type(sq); \
@@ -480,7 +481,7 @@
ATTRIBUTES_SEQ_SIZE \
> type; \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
static type call(boost_fusion_detail_Sq& sq) \
{ \
return type(sq); \
diff --git a/boost/fusion/adapted/struct/detail/deref_impl.hpp b/boost/fusion/adapted/struct/detail/deref_impl.hpp
index a3bc9f3..c53b51a 100644
--- a/boost/fusion/adapted/struct/detail/deref_impl.hpp
+++ b/boost/fusion/adapted/struct/detail/deref_impl.hpp
@@ -28,9 +28,8 @@ namespace boost { namespace fusion { namespace extension
typedef typename impl::type type;
- BOOST_FUSION_GPU_ENABLED
- static
- type
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static type
call(It const& it)
{
return impl::call(*it.seq);
diff --git a/boost/fusion/adapted/struct/detail/end_impl.hpp b/boost/fusion/adapted/struct/detail/end_impl.hpp
index b17eba7..855be7a 100644
--- a/boost/fusion/adapted/struct/detail/end_impl.hpp
+++ b/boost/fusion/adapted/struct/detail/end_impl.hpp
@@ -33,7 +33,7 @@ namespace boost { namespace fusion { namespace extension
>
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Seq& seq)
{
@@ -57,7 +57,7 @@ namespace boost { namespace fusion { namespace extension
>
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Seq& seq)
{
diff --git a/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp b/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp
new file mode 100644
index 0000000..95f1105
--- /dev/null
+++ b/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp
@@ -0,0 +1,41 @@
+/*=============================================================================
+ BOOST_PP_VARIADICS version of BOOST_PP_IS_SEQ inspired from
+ boost/mpl/aux_/preprocessor/is_seq.hpp, original copyrights goes to :
+
+ Copyright Paul Mensonides 2003
+ Copyright Aleksey Gurtovoy 2003-2004
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+==============================================================================*/
+
+#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_PREPROCESSOR_IS_SEQ_HPP
+#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_PREPROCESSOR_IS_SEQ_HPP
+
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/preprocessor/punctuation/paren.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/config/config.hpp>
+
+#if BOOST_PP_VARIADICS
+
+#define BOOST_FUSION_PP_IS_SEQ(seq) BOOST_PP_CAT(BOOST_FUSION_PP_IS_SEQ_, \
+ BOOST_FUSION_PP_IS_SEQ_0 seq BOOST_PP_RPAREN())
+
+#define BOOST_FUSION_PP_IS_SEQ_0(...) \
+ BOOST_FUSION_PP_IS_SEQ_1(__VA_ARGS__
+
+#define BOOST_FUSION_PP_IS_SEQ_ALWAYS_0(...) \
+ 0
+
+#define BOOST_FUSION_PP_IS_SEQ_BOOST_FUSION_PP_IS_SEQ_0 \
+ BOOST_FUSION_PP_IS_SEQ_ALWAYS_0(
+
+#define BOOST_FUSION_PP_IS_SEQ_BOOST_FUSION_PP_IS_SEQ_1(...) \
+ 1
+
+#endif // BOOST_PP_VARIADICS
+
+#endif
diff --git a/boost/fusion/adapted/struct/detail/proxy_type.hpp b/boost/fusion/adapted/struct/detail/proxy_type.hpp
index 350137a..b4cb55b 100644
--- a/boost/fusion/adapted/struct/detail/proxy_type.hpp
+++ b/boost/fusion/adapted/struct/detail/proxy_type.hpp
@@ -12,6 +12,8 @@
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/adapted/struct/detail/namespace.hpp>
+#define BOOST_FUSION_PROXY_PREFIX() obj.
+
#define BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \
WRAPPED_TYPE,NAMESPACE_SEQ,NAME) \
\
@@ -19,7 +21,7 @@
\
struct NAME \
{ \
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME(WRAPPED_TYPE& in_obj) \
: obj(in_obj) \
{} \
diff --git a/boost/fusion/algorithm/auxiliary.hpp b/boost/fusion/algorithm/auxiliary.hpp
index ec327a0..313c81f 100644
--- a/boost/fusion/algorithm/auxiliary.hpp
+++ b/boost/fusion/algorithm/auxiliary.hpp
@@ -9,5 +9,8 @@
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/algorithm/auxiliary/copy.hpp>
+#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+#include <boost/fusion/algorithm/auxiliary/move.hpp>
+#endif
#endif
diff --git a/boost/fusion/algorithm/auxiliary/copy.hpp b/boost/fusion/algorithm/auxiliary/copy.hpp
index 7ac8e6f..ec240ba 100644
--- a/boost/fusion/algorithm/auxiliary/copy.hpp
+++ b/boost/fusion/algorithm/auxiliary/copy.hpp
@@ -16,7 +16,7 @@
#include <boost/config.hpp>
#include <boost/static_assert.hpp>
#include <boost/utility/enable_if.hpp>
-#include <boost/type_traits/ice.hpp>
+#include <boost/mpl/and.hpp>
#if defined (BOOST_MSVC)
# pragma warning(push)
@@ -34,14 +34,14 @@ namespace boost { namespace fusion
typedef typename result_of::end<Seq2>::type end2_type;
template <typename I1, typename I2>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static void
call(I1 const&, I2 const&, mpl::true_)
{
}
template <typename I1, typename I2>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static void
call(I1 const& src, I2 const& dest, mpl::false_)
{
@@ -50,7 +50,7 @@ namespace boost { namespace fusion
}
template <typename I1, typename I2>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static void
call(I1 const& src, I2 const& dest)
{
@@ -60,17 +60,19 @@ namespace boost { namespace fusion
};
}
+ namespace result_of
+ {
+ template <typename Seq1, typename Seq2>
+ struct copy
+ : enable_if<mpl::and_<
+ traits::is_sequence<Seq1>,
+ traits::is_sequence<Seq2>
+ > > {};
+ }
+
template <typename Seq1, typename Seq2>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
- enable_if_c<
- type_traits::ice_and<
- traits::is_sequence<Seq1>::value
- , traits::is_sequence<Seq2>::value
- >::value,
- void
- >::type
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::copy<Seq1 const, Seq2>::type
copy(Seq1 const& src, Seq2& dest)
{
BOOST_STATIC_ASSERT(
diff --git a/boost/fusion/algorithm/auxiliary/move.hpp b/boost/fusion/algorithm/auxiliary/move.hpp
index 688f54a..6855282 100644
--- a/boost/fusion/algorithm/auxiliary/move.hpp
+++ b/boost/fusion/algorithm/auxiliary/move.hpp
@@ -16,7 +16,9 @@
#include <boost/config.hpp>
#include <boost/static_assert.hpp>
#include <boost/utility/enable_if.hpp>
-#include <boost/type_traits/ice.hpp>
+#include <boost/mpl/and.hpp>
+
+#include <utility> // for std::move
#if defined (BOOST_MSVC)
# pragma warning(push)
@@ -34,14 +36,14 @@ namespace boost { namespace fusion
typedef typename result_of::end<Seq2>::type end2_type;
template <typename I1, typename I2>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static void
call(I1 const&, I2 const&, mpl::true_)
{
}
template <typename I1, typename I2>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static void
call(I1 const& src, I2 const& dest, mpl::false_)
{
@@ -50,7 +52,7 @@ namespace boost { namespace fusion
}
template <typename I1, typename I2>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static void
call(I1 const& src, I2 const& dest)
{
@@ -60,17 +62,19 @@ namespace boost { namespace fusion
};
}
+ namespace result_of
+ {
+ template <typename Seq1, typename Seq2>
+ struct move
+ : enable_if<mpl::and_<
+ traits::is_sequence<Seq1>,
+ traits::is_sequence<Seq2>
+ > > {};
+ }
+
template <typename Seq1, typename Seq2>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
- enable_if_c<
- type_traits::ice_and<
- traits::is_sequence<Seq1>::value
- , traits::is_sequence<Seq2>::value
- >::value,
- void
- >::type
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::move<Seq1, Seq2>::type
move(Seq1&& src, Seq2& dest)
{
BOOST_STATIC_ASSERT(
diff --git a/boost/fusion/algorithm/iteration/accumulate.hpp b/boost/fusion/algorithm/iteration/accumulate.hpp
index 430f9eb..fe7112e 100644
--- a/boost/fusion/algorithm/iteration/accumulate.hpp
+++ b/boost/fusion/algorithm/iteration/accumulate.hpp
@@ -26,9 +26,8 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
, result_of::accumulate<Sequence, State const, F>
@@ -39,9 +38,8 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
, result_of::accumulate<Sequence const, State const, F>
diff --git a/boost/fusion/algorithm/iteration/accumulate_fwd.hpp b/boost/fusion/algorithm/iteration/accumulate_fwd.hpp
index 0633349..50c4d39 100644
--- a/boost/fusion/algorithm/iteration/accumulate_fwd.hpp
+++ b/boost/fusion/algorithm/iteration/accumulate_fwd.hpp
@@ -20,8 +20,8 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
, result_of::accumulate<Sequence, State const, F>
@@ -29,8 +29,8 @@ namespace boost { namespace fusion
accumulate(Sequence& seq, State const& state, F f);
template <typename Sequence, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
, result_of::accumulate<Sequence const, State const, F>
diff --git a/boost/fusion/algorithm/iteration/detail/fold.hpp b/boost/fusion/algorithm/iteration/detail/fold.hpp
index 71f60a7..1813bd2 100644
--- a/boost/fusion/algorithm/iteration/detail/fold.hpp
+++ b/boost/fusion/algorithm/iteration/detail/fold.hpp
@@ -47,7 +47,7 @@ namespace boost { namespace fusion
{
template<typename State, typename It, typename F>
struct BOOST_PP_CAT(BOOST_FUSION_FOLD_NAME, _lvalue_state)
- : boost::result_of<
+ : fusion::detail::result_of_with_decltype<
F(
typename add_reference<typename add_const<State>::type>::type,
BOOST_FUSION_FOLD_IMPL_INVOKE_IT_META_TRANSFORM(It))
@@ -57,39 +57,11 @@ namespace boost { namespace fusion
template<typename Result,int N>
struct BOOST_PP_CAT(unrolled_,BOOST_FUSION_FOLD_NAME)
{
- template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ template<typename State3, typename It3, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
- call(State const& state,It0 const& it0,F f)
+ call_3(State3 const& state3,It3 const& it3,F& f)
{
- typedef typename
- result_of::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION<
- It0 const
- >::type
- It1;
- It1 it1 = fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it0);
- typedef typename
- result_of::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION<
- It1
- >::type
- It2;
- It2 it2 = fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it1);
- typedef typename
- result_of::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION<
- It2
- >::type
- It3;
- It3 it3 = fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it2);
-
- typedef typename BOOST_PP_CAT(BOOST_FUSION_FOLD_NAME, _lvalue_state)<State,It0,F>::type State1;
- State1 const state1=f(state,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it0));
-
- typedef typename BOOST_PP_CAT(BOOST_FUSION_FOLD_NAME, _lvalue_state)<State1,It1,F>::type State2;
- State2 const state2=f(state1,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it1));
-
- typedef typename BOOST_PP_CAT(BOOST_FUSION_FOLD_NAME, _lvalue_state)<State2,It2,F>::type State3;
- State3 const state3=f(state2,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it2));
-
return BOOST_PP_CAT(unrolled_,BOOST_FUSION_FOLD_NAME)<
Result
, N-4
@@ -98,54 +70,95 @@ namespace boost { namespace fusion
fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it3),
f);
}
+
+ template<typename State2, typename It2, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_2(State2 const& state2,It2 const& it2,F& f)
+ {
+ return call_3(
+ f(state2,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it2)),
+ fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it2),
+ f);
+ }
+
+ template<typename State1, typename It1, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_1(State1 const& state1,It1 const& it1,F& f)
+ {
+ return call_2(
+ f(state1,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it1)),
+ fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it1),
+ f);
+ }
+
+ template<typename State, typename It0, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call(State const& state,It0 const& it0,F f)
+ {
+ return call_1(
+ f(state,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it0)),
+ fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it0),
+ f);
+ }
};
template<typename Result>
struct BOOST_PP_CAT(unrolled_,BOOST_FUSION_FOLD_NAME)<Result,3>
{
- template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ template<typename State2, typename It2, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
- call(State const& state,It0 const& it0,F f)
+ call_2(State2 const& state2,It2 const& it2,F& f)
{
- typedef typename
- result_of::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION<
- It0 const
- >::type
- It1;
- It1 it1 = fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it0);
- typedef typename
- result_of::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION<
- It1
- >::type
- It2;
- It2 it2 = fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it1);
-
- typedef typename BOOST_PP_CAT(BOOST_FUSION_FOLD_NAME, _lvalue_state)<State,It0,F>::type State1;
- State1 const state1=f(state,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it0));
+ return f(state2,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it2));
+ }
- typedef typename BOOST_PP_CAT(BOOST_FUSION_FOLD_NAME, _lvalue_state)<State1,It1,F>::type State2;
- State2 const state2=f(state1,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it1));
+ template<typename State1, typename It1, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_1(State1 const& state1,It1 const& it1,F& f)
+ {
+ return call_2(
+ f(state1,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it1)),
+ fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it1),
+ f);
+ }
- return f(state2,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it2));
+ template<typename State, typename It0, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call(State const& state,It0 const& it0,F f)
+ {
+ return call_1(
+ f(state,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it0)),
+ fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it0),
+ f);
}
};
template<typename Result>
struct BOOST_PP_CAT(unrolled_,BOOST_FUSION_FOLD_NAME)<Result,2>
{
+ template<typename State1, typename It1, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_1(State1 const& state1,It1 const& it1,F& f)
+ {
+ return f(state1,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it1));
+ }
+
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const& it0,F f)
{
- typedef typename BOOST_PP_CAT(BOOST_FUSION_FOLD_NAME, _lvalue_state)<State,It0,F>::type State1;
- State1 const state1=f(state,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it0));
-
- return f(
- state1,
- BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(
- fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it0)));
+ return call_1(
+ f(state,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it0)),
+ fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it0),
+ f);
}
};
@@ -153,7 +166,7 @@ namespace boost { namespace fusion
struct BOOST_PP_CAT(unrolled_,BOOST_FUSION_FOLD_NAME)<Result,1>
{
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const& it0,F f)
{
@@ -166,7 +179,7 @@ namespace boost { namespace fusion
struct BOOST_PP_CAT(unrolled_,BOOST_FUSION_FOLD_NAME)<Result,0>
{
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const&, F)
{
@@ -314,7 +327,7 @@ namespace boost { namespace fusion
{
typedef typename
BOOST_PP_CAT(result_of_unrolled_,BOOST_FUSION_FOLD_NAME)<
- typename boost::result_of<
+ typename fusion::detail::result_of_with_decltype<
F(
StateRef,
BOOST_FUSION_FOLD_IMPL_INVOKE_IT_META_TRANSFORM(
@@ -345,7 +358,7 @@ namespace boost { namespace fusion
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(StateRef state, Seq& seq, F f)
{
@@ -369,7 +382,7 @@ namespace boost { namespace fusion
{
typedef StateRef type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static StateRef
call(StateRef state, Seq&, F)
{
@@ -404,7 +417,7 @@ namespace boost { namespace fusion
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::BOOST_FUSION_FOLD_NAME<
Seq
, State const
@@ -419,7 +432,7 @@ namespace boost { namespace fusion
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::BOOST_FUSION_FOLD_NAME<
Seq const
, State const
@@ -434,7 +447,7 @@ namespace boost { namespace fusion
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::BOOST_FUSION_FOLD_NAME<
Seq
, State const
@@ -449,7 +462,7 @@ namespace boost { namespace fusion
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::BOOST_FUSION_FOLD_NAME<
Seq const
, State const
diff --git a/boost/fusion/algorithm/iteration/detail/for_each.hpp b/boost/fusion/algorithm/iteration/detail/for_each.hpp
index 81b3ab7..0bef5ce 100644
--- a/boost/fusion/algorithm/iteration/detail/for_each.hpp
+++ b/boost/fusion/algorithm/iteration/detail/for_each.hpp
@@ -21,14 +21,14 @@ namespace boost { namespace fusion {
namespace detail
{
template <typename First, typename Last, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline void
for_each_linear(First const&, Last const&, F const&, mpl::true_)
{
}
-
+
template <typename First, typename Last, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline void
for_each_linear(First const& first, Last const& last, F const& f, mpl::false_)
{
@@ -39,7 +39,7 @@ namespace detail
template <typename Sequence, typename F, typename Tag>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline void
for_each_dispatch(Sequence& seq, F const& f, Tag)
{
@@ -56,7 +56,7 @@ namespace detail
struct for_each_unrolled
{
template<typename I0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static void call(I0 const& i0, F const& f)
{
f(*i0);
@@ -77,7 +77,7 @@ namespace detail
struct for_each_unrolled<3>
{
template<typename I0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static void call(I0 const& i0, F const& f)
{
f(*i0);
@@ -94,7 +94,7 @@ namespace detail
struct for_each_unrolled<2>
{
template<typename I0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static void call(I0 const& i0, F const& f)
{
f(*i0);
@@ -108,7 +108,7 @@ namespace detail
struct for_each_unrolled<1>
{
template<typename I0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static void call(I0 const& i0, F const& f)
{
f(*i0);
@@ -119,14 +119,14 @@ namespace detail
struct for_each_unrolled<0>
{
template<typename It, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static void call(It const&, F const&)
{
}
};
template <typename Sequence, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline void
for_each_dispatch(Sequence& seq, F const& f, random_access_traversal_tag)
{
@@ -136,7 +136,7 @@ namespace detail
}
template <typename Sequence, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline void
for_each(Sequence& seq, F const& f, mpl::false_) // unsegmented implementation
{
diff --git a/boost/fusion/algorithm/iteration/detail/preprocessed/fold.hpp b/boost/fusion/algorithm/iteration/detail/preprocessed/fold.hpp
index 140c70b..bd3b1db 100644
--- a/boost/fusion/algorithm/iteration/detail/preprocessed/fold.hpp
+++ b/boost/fusion/algorithm/iteration/detail/preprocessed/fold.hpp
@@ -14,7 +14,7 @@ namespace boost { namespace fusion
{
template<typename State, typename It, typename F>
struct fold_lvalue_state
- : boost::result_of<
+ : fusion::detail::result_of_with_decltype<
F(
typename add_reference<typename add_const<State>::type>::type,
typename fusion::result_of::deref<It>::type)
@@ -23,35 +23,11 @@ namespace boost { namespace fusion
template<typename Result,int N>
struct unrolled_fold
{
- template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ template<typename State3, typename It3, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
- call(State const& state,It0 const& it0,F f)
+ call_3(State3 const& state3,It3 const& it3,F& f)
{
- typedef typename
- result_of::next<
- It0 const
- >::type
- It1;
- It1 it1 = fusion::next(it0);
- typedef typename
- result_of::next<
- It1
- >::type
- It2;
- It2 it2 = fusion::next(it1);
- typedef typename
- result_of::next<
- It2
- >::type
- It3;
- It3 it3 = fusion::next(it2);
- typedef typename fold_lvalue_state<State,It0,F>::type State1;
- State1 const state1=f(state,fusion::deref(it0));
- typedef typename fold_lvalue_state<State1,It1,F>::type State2;
- State2 const state2=f(state1,fusion::deref(it1));
- typedef typename fold_lvalue_state<State2,It2,F>::type State3;
- State3 const state3=f(state2,fusion::deref(it2));
return unrolled_fold<
Result
, N-4
@@ -60,54 +36,94 @@ namespace boost { namespace fusion
fusion::next(it3),
f);
}
+ template<typename State2, typename It2, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_2(State2 const& state2,It2 const& it2,F& f)
+ {
+ return call_3(
+ f(state2,fusion::deref(it2)),
+ fusion::next(it2),
+ f);
+ }
+ template<typename State1, typename It1, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_1(State1 const& state1,It1 const& it1,F& f)
+ {
+ return call_2(
+ f(state1,fusion::deref(it1)),
+ fusion::next(it1),
+ f);
+ }
+ template<typename State, typename It0, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call(State const& state,It0 const& it0,F f)
+ {
+ return call_1(
+ f(state,fusion::deref(it0)),
+ fusion::next(it0),
+ f);
+ }
};
template<typename Result>
struct unrolled_fold<Result,3>
{
+ template<typename State2, typename It2, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_2(State2 const& state2,It2 const& it2,F& f)
+ {
+ return f(state2,fusion::deref(it2));
+ }
+ template<typename State1, typename It1, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_1(State1 const& state1,It1 const& it1,F& f)
+ {
+ return call_2(
+ f(state1,fusion::deref(it1)),
+ fusion::next(it1),
+ f);
+ }
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const& it0,F f)
{
- typedef typename
- result_of::next<
- It0 const
- >::type
- It1;
- It1 it1 = fusion::next(it0);
- typedef typename
- result_of::next<
- It1
- >::type
- It2;
- It2 it2 = fusion::next(it1);
- typedef typename fold_lvalue_state<State,It0,F>::type State1;
- State1 const state1=f(state,fusion::deref(it0));
- typedef typename fold_lvalue_state<State1,It1,F>::type State2;
- State2 const state2=f(state1,fusion::deref(it1));
- return f(state2,fusion::deref(it2));
+ return call_1(
+ f(state,fusion::deref(it0)),
+ fusion::next(it0),
+ f);
}
};
template<typename Result>
struct unrolled_fold<Result,2>
{
+ template<typename State1, typename It1, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_1(State1 const& state1,It1 const& it1,F& f)
+ {
+ return f(state1,fusion::deref(it1));
+ }
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const& it0,F f)
{
- typedef typename fold_lvalue_state<State,It0,F>::type State1;
- State1 const state1=f(state,fusion::deref(it0));
- return f(
- state1,
- fusion::deref( fusion::next(it0)));
+ return call_1(
+ f(state,fusion::deref(it0)),
+ fusion::next(it0),
+ f);
}
};
template<typename Result>
struct unrolled_fold<Result,1>
{
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const& it0,F f)
{
@@ -119,7 +135,7 @@ namespace boost { namespace fusion
struct unrolled_fold<Result,0>
{
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const&, F)
{
@@ -257,7 +273,7 @@ namespace boost { namespace fusion
{
typedef typename
result_of_unrolled_fold<
- typename boost::result_of<
+ typename fusion::detail::result_of_with_decltype<
F(
StateRef,
typename fusion::result_of::deref< It0 const>::type
@@ -282,7 +298,7 @@ namespace boost { namespace fusion
, SeqSize
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(StateRef state, Seq& seq, F f)
{
@@ -302,7 +318,7 @@ namespace boost { namespace fusion
struct fold_impl<0,StateRef,Seq,F>
{
typedef StateRef type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static StateRef
call(StateRef state, Seq&, F)
{
@@ -334,7 +350,7 @@ namespace boost { namespace fusion
{};
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::fold<
Seq
, State const
@@ -348,7 +364,7 @@ namespace boost { namespace fusion
f);
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::fold<
Seq const
, State const
@@ -362,7 +378,7 @@ namespace boost { namespace fusion
f);
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::fold<
Seq
, State const
@@ -376,7 +392,7 @@ namespace boost { namespace fusion
f);
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::fold<
Seq const
, State const
diff --git a/boost/fusion/algorithm/iteration/detail/preprocessed/iter_fold.hpp b/boost/fusion/algorithm/iteration/detail/preprocessed/iter_fold.hpp
index 1211550..1d294a8 100644
--- a/boost/fusion/algorithm/iteration/detail/preprocessed/iter_fold.hpp
+++ b/boost/fusion/algorithm/iteration/detail/preprocessed/iter_fold.hpp
@@ -13,7 +13,7 @@ namespace boost { namespace fusion
{
template<typename State, typename It, typename F>
struct iter_fold_lvalue_state
- : boost::result_of<
+ : fusion::detail::result_of_with_decltype<
F(
typename add_reference<typename add_const<State>::type>::type,
It&)
@@ -22,35 +22,11 @@ namespace boost { namespace fusion
template<typename Result,int N>
struct unrolled_iter_fold
{
- template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ template<typename State3, typename It3, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
- call(State const& state,It0 const& it0,F f)
+ call_3(State3 const& state3,It3 const& it3,F& f)
{
- typedef typename
- result_of::next<
- It0 const
- >::type
- It1;
- It1 it1 = fusion::next(it0);
- typedef typename
- result_of::next<
- It1
- >::type
- It2;
- It2 it2 = fusion::next(it1);
- typedef typename
- result_of::next<
- It2
- >::type
- It3;
- It3 it3 = fusion::next(it2);
- typedef typename iter_fold_lvalue_state<State,It0,F>::type State1;
- State1 const state1=f(state,it0);
- typedef typename iter_fold_lvalue_state<State1,It1,F>::type State2;
- State2 const state2=f(state1,it1);
- typedef typename iter_fold_lvalue_state<State2,It2,F>::type State3;
- State3 const state3=f(state2,it2);
return unrolled_iter_fold<
Result
, N-4
@@ -59,54 +35,94 @@ namespace boost { namespace fusion
fusion::next(it3),
f);
}
+ template<typename State2, typename It2, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_2(State2 const& state2,It2 const& it2,F& f)
+ {
+ return call_3(
+ f(state2,it2),
+ fusion::next(it2),
+ f);
+ }
+ template<typename State1, typename It1, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_1(State1 const& state1,It1 const& it1,F& f)
+ {
+ return call_2(
+ f(state1,it1),
+ fusion::next(it1),
+ f);
+ }
+ template<typename State, typename It0, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call(State const& state,It0 const& it0,F f)
+ {
+ return call_1(
+ f(state,it0),
+ fusion::next(it0),
+ f);
+ }
};
template<typename Result>
struct unrolled_iter_fold<Result,3>
{
+ template<typename State2, typename It2, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_2(State2 const& state2,It2 const& it2,F& f)
+ {
+ return f(state2,it2);
+ }
+ template<typename State1, typename It1, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_1(State1 const& state1,It1 const& it1,F& f)
+ {
+ return call_2(
+ f(state1,it1),
+ fusion::next(it1),
+ f);
+ }
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const& it0,F f)
{
- typedef typename
- result_of::next<
- It0 const
- >::type
- It1;
- It1 it1 = fusion::next(it0);
- typedef typename
- result_of::next<
- It1
- >::type
- It2;
- It2 it2 = fusion::next(it1);
- typedef typename iter_fold_lvalue_state<State,It0,F>::type State1;
- State1 const state1=f(state,it0);
- typedef typename iter_fold_lvalue_state<State1,It1,F>::type State2;
- State2 const state2=f(state1,it1);
- return f(state2,it2);
+ return call_1(
+ f(state,it0),
+ fusion::next(it0),
+ f);
}
};
template<typename Result>
struct unrolled_iter_fold<Result,2>
{
+ template<typename State1, typename It1, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_1(State1 const& state1,It1 const& it1,F& f)
+ {
+ return f(state1,it1);
+ }
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const& it0,F f)
{
- typedef typename iter_fold_lvalue_state<State,It0,F>::type State1;
- State1 const state1=f(state,it0);
- return f(
- state1,
- fusion::next(it0));
+ return call_1(
+ f(state,it0),
+ fusion::next(it0),
+ f);
}
};
template<typename Result>
struct unrolled_iter_fold<Result,1>
{
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const& it0,F f)
{
@@ -118,7 +134,7 @@ namespace boost { namespace fusion
struct unrolled_iter_fold<Result,0>
{
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const&, F)
{
@@ -256,7 +272,7 @@ namespace boost { namespace fusion
{
typedef typename
result_of_unrolled_iter_fold<
- typename boost::result_of<
+ typename fusion::detail::result_of_with_decltype<
F(
StateRef,
It0 const&
@@ -281,7 +297,7 @@ namespace boost { namespace fusion
, SeqSize
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(StateRef state, Seq& seq, F f)
{
@@ -301,7 +317,7 @@ namespace boost { namespace fusion
struct iter_fold_impl<0,StateRef,Seq,F>
{
typedef StateRef type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static StateRef
call(StateRef state, Seq&, F)
{
@@ -333,7 +349,7 @@ namespace boost { namespace fusion
{};
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::iter_fold<
Seq
, State const
@@ -347,7 +363,7 @@ namespace boost { namespace fusion
f);
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::iter_fold<
Seq const
, State const
@@ -361,7 +377,7 @@ namespace boost { namespace fusion
f);
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::iter_fold<
Seq
, State const
@@ -375,7 +391,7 @@ namespace boost { namespace fusion
f);
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::iter_fold<
Seq const
, State const
diff --git a/boost/fusion/algorithm/iteration/detail/preprocessed/reverse_fold.hpp b/boost/fusion/algorithm/iteration/detail/preprocessed/reverse_fold.hpp
index cc78231..9478978 100644
--- a/boost/fusion/algorithm/iteration/detail/preprocessed/reverse_fold.hpp
+++ b/boost/fusion/algorithm/iteration/detail/preprocessed/reverse_fold.hpp
@@ -13,7 +13,7 @@ namespace boost { namespace fusion
{
template<typename State, typename It, typename F>
struct reverse_fold_lvalue_state
- : boost::result_of<
+ : fusion::detail::result_of_with_decltype<
F(
typename add_reference<typename add_const<State>::type>::type,
typename fusion::result_of::deref<It>::type)
@@ -22,35 +22,11 @@ namespace boost { namespace fusion
template<typename Result,int N>
struct unrolled_reverse_fold
{
- template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ template<typename State3, typename It3, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
- call(State const& state,It0 const& it0,F f)
+ call_3(State3 const& state3,It3 const& it3,F& f)
{
- typedef typename
- result_of::prior<
- It0 const
- >::type
- It1;
- It1 it1 = fusion::prior(it0);
- typedef typename
- result_of::prior<
- It1
- >::type
- It2;
- It2 it2 = fusion::prior(it1);
- typedef typename
- result_of::prior<
- It2
- >::type
- It3;
- It3 it3 = fusion::prior(it2);
- typedef typename reverse_fold_lvalue_state<State,It0,F>::type State1;
- State1 const state1=f(state,fusion::deref(it0));
- typedef typename reverse_fold_lvalue_state<State1,It1,F>::type State2;
- State2 const state2=f(state1,fusion::deref(it1));
- typedef typename reverse_fold_lvalue_state<State2,It2,F>::type State3;
- State3 const state3=f(state2,fusion::deref(it2));
return unrolled_reverse_fold<
Result
, N-4
@@ -59,54 +35,94 @@ namespace boost { namespace fusion
fusion::prior(it3),
f);
}
+ template<typename State2, typename It2, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_2(State2 const& state2,It2 const& it2,F& f)
+ {
+ return call_3(
+ f(state2,fusion::deref(it2)),
+ fusion::prior(it2),
+ f);
+ }
+ template<typename State1, typename It1, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_1(State1 const& state1,It1 const& it1,F& f)
+ {
+ return call_2(
+ f(state1,fusion::deref(it1)),
+ fusion::prior(it1),
+ f);
+ }
+ template<typename State, typename It0, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call(State const& state,It0 const& it0,F f)
+ {
+ return call_1(
+ f(state,fusion::deref(it0)),
+ fusion::prior(it0),
+ f);
+ }
};
template<typename Result>
struct unrolled_reverse_fold<Result,3>
{
+ template<typename State2, typename It2, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_2(State2 const& state2,It2 const& it2,F& f)
+ {
+ return f(state2,fusion::deref(it2));
+ }
+ template<typename State1, typename It1, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_1(State1 const& state1,It1 const& it1,F& f)
+ {
+ return call_2(
+ f(state1,fusion::deref(it1)),
+ fusion::prior(it1),
+ f);
+ }
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const& it0,F f)
{
- typedef typename
- result_of::prior<
- It0 const
- >::type
- It1;
- It1 it1 = fusion::prior(it0);
- typedef typename
- result_of::prior<
- It1
- >::type
- It2;
- It2 it2 = fusion::prior(it1);
- typedef typename reverse_fold_lvalue_state<State,It0,F>::type State1;
- State1 const state1=f(state,fusion::deref(it0));
- typedef typename reverse_fold_lvalue_state<State1,It1,F>::type State2;
- State2 const state2=f(state1,fusion::deref(it1));
- return f(state2,fusion::deref(it2));
+ return call_1(
+ f(state,fusion::deref(it0)),
+ fusion::prior(it0),
+ f);
}
};
template<typename Result>
struct unrolled_reverse_fold<Result,2>
{
+ template<typename State1, typename It1, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_1(State1 const& state1,It1 const& it1,F& f)
+ {
+ return f(state1,fusion::deref(it1));
+ }
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const& it0,F f)
{
- typedef typename reverse_fold_lvalue_state<State,It0,F>::type State1;
- State1 const state1=f(state,fusion::deref(it0));
- return f(
- state1,
- fusion::deref( fusion::prior(it0)));
+ return call_1(
+ f(state,fusion::deref(it0)),
+ fusion::prior(it0),
+ f);
}
};
template<typename Result>
struct unrolled_reverse_fold<Result,1>
{
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const& it0,F f)
{
@@ -118,7 +134,7 @@ namespace boost { namespace fusion
struct unrolled_reverse_fold<Result,0>
{
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const&, F)
{
@@ -256,7 +272,7 @@ namespace boost { namespace fusion
{
typedef typename
result_of_unrolled_reverse_fold<
- typename boost::result_of<
+ typename fusion::detail::result_of_with_decltype<
F(
StateRef,
typename fusion::result_of::deref< It0 const>::type
@@ -281,7 +297,7 @@ namespace boost { namespace fusion
, SeqSize
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(StateRef state, Seq& seq, F f)
{
@@ -301,7 +317,7 @@ namespace boost { namespace fusion
struct reverse_fold_impl<0,StateRef,Seq,F>
{
typedef StateRef type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static StateRef
call(StateRef state, Seq&, F)
{
@@ -333,7 +349,7 @@ namespace boost { namespace fusion
{};
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::reverse_fold<
Seq
, State const
@@ -347,7 +363,7 @@ namespace boost { namespace fusion
f);
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::reverse_fold<
Seq const
, State const
@@ -361,7 +377,7 @@ namespace boost { namespace fusion
f);
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::reverse_fold<
Seq
, State const
@@ -375,7 +391,7 @@ namespace boost { namespace fusion
f);
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::reverse_fold<
Seq const
, State const
diff --git a/boost/fusion/algorithm/iteration/detail/preprocessed/reverse_iter_fold.hpp b/boost/fusion/algorithm/iteration/detail/preprocessed/reverse_iter_fold.hpp
index 3023a91..bf1edca 100644
--- a/boost/fusion/algorithm/iteration/detail/preprocessed/reverse_iter_fold.hpp
+++ b/boost/fusion/algorithm/iteration/detail/preprocessed/reverse_iter_fold.hpp
@@ -13,7 +13,7 @@ namespace boost { namespace fusion
{
template<typename State, typename It, typename F>
struct reverse_iter_fold_lvalue_state
- : boost::result_of<
+ : fusion::detail::result_of_with_decltype<
F(
typename add_reference<typename add_const<State>::type>::type,
It&)
@@ -22,35 +22,11 @@ namespace boost { namespace fusion
template<typename Result,int N>
struct unrolled_reverse_iter_fold
{
- template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ template<typename State3, typename It3, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
- call(State const& state,It0 const& it0,F f)
+ call_3(State3 const& state3,It3 const& it3,F& f)
{
- typedef typename
- result_of::prior<
- It0 const
- >::type
- It1;
- It1 it1 = fusion::prior(it0);
- typedef typename
- result_of::prior<
- It1
- >::type
- It2;
- It2 it2 = fusion::prior(it1);
- typedef typename
- result_of::prior<
- It2
- >::type
- It3;
- It3 it3 = fusion::prior(it2);
- typedef typename reverse_iter_fold_lvalue_state<State,It0,F>::type State1;
- State1 const state1=f(state,it0);
- typedef typename reverse_iter_fold_lvalue_state<State1,It1,F>::type State2;
- State2 const state2=f(state1,it1);
- typedef typename reverse_iter_fold_lvalue_state<State2,It2,F>::type State3;
- State3 const state3=f(state2,it2);
return unrolled_reverse_iter_fold<
Result
, N-4
@@ -59,54 +35,94 @@ namespace boost { namespace fusion
fusion::prior(it3),
f);
}
+ template<typename State2, typename It2, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_2(State2 const& state2,It2 const& it2,F& f)
+ {
+ return call_3(
+ f(state2,it2),
+ fusion::prior(it2),
+ f);
+ }
+ template<typename State1, typename It1, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_1(State1 const& state1,It1 const& it1,F& f)
+ {
+ return call_2(
+ f(state1,it1),
+ fusion::prior(it1),
+ f);
+ }
+ template<typename State, typename It0, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call(State const& state,It0 const& it0,F f)
+ {
+ return call_1(
+ f(state,it0),
+ fusion::prior(it0),
+ f);
+ }
};
template<typename Result>
struct unrolled_reverse_iter_fold<Result,3>
{
+ template<typename State2, typename It2, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_2(State2 const& state2,It2 const& it2,F& f)
+ {
+ return f(state2,it2);
+ }
+ template<typename State1, typename It1, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_1(State1 const& state1,It1 const& it1,F& f)
+ {
+ return call_2(
+ f(state1,it1),
+ fusion::prior(it1),
+ f);
+ }
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const& it0,F f)
{
- typedef typename
- result_of::prior<
- It0 const
- >::type
- It1;
- It1 it1 = fusion::prior(it0);
- typedef typename
- result_of::prior<
- It1
- >::type
- It2;
- It2 it2 = fusion::prior(it1);
- typedef typename reverse_iter_fold_lvalue_state<State,It0,F>::type State1;
- State1 const state1=f(state,it0);
- typedef typename reverse_iter_fold_lvalue_state<State1,It1,F>::type State2;
- State2 const state2=f(state1,it1);
- return f(state2,it2);
+ return call_1(
+ f(state,it0),
+ fusion::prior(it0),
+ f);
}
};
template<typename Result>
struct unrolled_reverse_iter_fold<Result,2>
{
+ template<typename State1, typename It1, typename F>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static Result
+ call_1(State1 const& state1,It1 const& it1,F& f)
+ {
+ return f(state1,it1);
+ }
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const& it0,F f)
{
- typedef typename reverse_iter_fold_lvalue_state<State,It0,F>::type State1;
- State1 const state1=f(state,it0);
- return f(
- state1,
- fusion::prior(it0));
+ return call_1(
+ f(state,it0),
+ fusion::prior(it0),
+ f);
}
};
template<typename Result>
struct unrolled_reverse_iter_fold<Result,1>
{
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const& it0,F f)
{
@@ -118,7 +134,7 @@ namespace boost { namespace fusion
struct unrolled_reverse_iter_fold<Result,0>
{
template<typename State, typename It0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static Result
call(State const& state,It0 const&, F)
{
@@ -256,7 +272,7 @@ namespace boost { namespace fusion
{
typedef typename
result_of_unrolled_reverse_iter_fold<
- typename boost::result_of<
+ typename fusion::detail::result_of_with_decltype<
F(
StateRef,
It0 const&
@@ -281,7 +297,7 @@ namespace boost { namespace fusion
, SeqSize
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(StateRef state, Seq& seq, F f)
{
@@ -301,7 +317,7 @@ namespace boost { namespace fusion
struct reverse_iter_fold_impl<0,StateRef,Seq,F>
{
typedef StateRef type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static StateRef
call(StateRef state, Seq&, F)
{
@@ -333,7 +349,7 @@ namespace boost { namespace fusion
{};
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::reverse_iter_fold<
Seq
, State const
@@ -347,7 +363,7 @@ namespace boost { namespace fusion
f);
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::reverse_iter_fold<
Seq const
, State const
@@ -361,7 +377,7 @@ namespace boost { namespace fusion
f);
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::reverse_iter_fold<
Seq
, State const
@@ -375,7 +391,7 @@ namespace boost { namespace fusion
f);
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::reverse_iter_fold<
Seq const
, State const
diff --git a/boost/fusion/algorithm/iteration/detail/segmented_fold.hpp b/boost/fusion/algorithm/iteration/detail/segmented_fold.hpp
index 58aab11..4ff679a 100644
--- a/boost/fusion/algorithm/iteration/detail/segmented_fold.hpp
+++ b/boost/fusion/algorithm/iteration/detail/segmented_fold.hpp
@@ -16,7 +16,7 @@ namespace boost { namespace fusion { namespace detail
template <typename Fun>
struct segmented_fold_fun
{
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit segmented_fold_fun(Fun const& f)
: fun(f)
{}
@@ -29,7 +29,7 @@ namespace boost { namespace fusion { namespace detail
typedef typename result_of::fold<Sequence, State, Fun>::type type;
typedef mpl::true_ continue_type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq, State const& state, Context const&, segmented_fold_fun const& fun)
{
return fusion::fold(seq, state, fun.fun);
@@ -52,7 +52,7 @@ namespace boost { namespace fusion { namespace detail
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(State& state, Sequence& seq, Fun fun)
{
return fusion::segmented_fold_until(seq, state, segmented_fold_fun<Fun>(fun));
diff --git a/boost/fusion/algorithm/iteration/detail/segmented_for_each.hpp b/boost/fusion/algorithm/iteration/detail/segmented_for_each.hpp
index a5d6d4b..a32d9da 100644
--- a/boost/fusion/algorithm/iteration/detail/segmented_for_each.hpp
+++ b/boost/fusion/algorithm/iteration/detail/segmented_for_each.hpp
@@ -18,7 +18,7 @@ namespace boost { namespace fusion { namespace detail
template <typename Fun>
struct segmented_for_each_fun
{
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit segmented_for_each_fun(Fun const& f)
: fun(f)
{}
@@ -31,7 +31,7 @@ namespace boost { namespace fusion { namespace detail
typedef void_ type;
typedef mpl::true_ continue_type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq, State const&, Context const&, segmented_for_each_fun const& fun)
{
fusion::for_each(seq, fun.fun);
@@ -41,7 +41,7 @@ namespace boost { namespace fusion { namespace detail
};
template <typename Sequence, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline void
for_each(Sequence& seq, F const& f, mpl::true_) // segmented implementation
{
diff --git a/boost/fusion/algorithm/iteration/fold.hpp b/boost/fusion/algorithm/iteration/fold.hpp
index a83b33b..a2a0146 100644
--- a/boost/fusion/algorithm/iteration/fold.hpp
+++ b/boost/fusion/algorithm/iteration/fold.hpp
@@ -10,6 +10,7 @@
#define BOOST_FUSION_ALGORITHM_ITERATION_FOLD_HPP
#include <boost/fusion/support/config.hpp>
+#include <boost/fusion/support/detail/result_of.hpp>
#include <boost/fusion/algorithm/iteration/fold_fwd.hpp>
#include <boost/config.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp>
diff --git a/boost/fusion/algorithm/iteration/fold_fwd.hpp b/boost/fusion/algorithm/iteration/fold_fwd.hpp
index cd8dcd8..f8328e8 100644
--- a/boost/fusion/algorithm/iteration/fold_fwd.hpp
+++ b/boost/fusion/algorithm/iteration/fold_fwd.hpp
@@ -17,8 +17,8 @@ namespace boost { namespace fusion
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::fold<
Seq
, State const
, F
@@ -26,8 +26,8 @@ namespace boost { namespace fusion
fold(Seq& seq, State const& state, F f);
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::fold<
Seq const
, State const
, F
@@ -35,8 +35,8 @@ namespace boost { namespace fusion
fold(Seq const& seq, State const& state, F f);
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::fold<
Seq
, State const
, F
@@ -44,8 +44,8 @@ namespace boost { namespace fusion
fold(Seq& seq, State& state, F f);
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::fold<
Seq const
, State const
, F
diff --git a/boost/fusion/algorithm/iteration/for_each.hpp b/boost/fusion/algorithm/iteration/for_each.hpp
index 836f481..a523c85 100644
--- a/boost/fusion/algorithm/iteration/for_each.hpp
+++ b/boost/fusion/algorithm/iteration/for_each.hpp
@@ -27,9 +27,8 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename F>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
enable_if<
traits::is_sequence<Sequence>
, void
@@ -40,9 +39,8 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename F>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
enable_if<
traits::is_sequence<Sequence>
, void
diff --git a/boost/fusion/algorithm/iteration/for_each_fwd.hpp b/boost/fusion/algorithm/iteration/for_each_fwd.hpp
index 44a3d1d..13720ea 100644
--- a/boost/fusion/algorithm/iteration/for_each_fwd.hpp
+++ b/boost/fusion/algorithm/iteration/for_each_fwd.hpp
@@ -20,9 +20,8 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename F>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
enable_if<
traits::is_sequence<Sequence>
, void
@@ -30,9 +29,8 @@ namespace boost { namespace fusion
for_each(Sequence& seq, F const& f);
template <typename Sequence, typename F>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
enable_if<
traits::is_sequence<Sequence>
, void
diff --git a/boost/fusion/algorithm/iteration/iter_fold.hpp b/boost/fusion/algorithm/iteration/iter_fold.hpp
index 4c03cdf..b59a695 100644
--- a/boost/fusion/algorithm/iteration/iter_fold.hpp
+++ b/boost/fusion/algorithm/iteration/iter_fold.hpp
@@ -17,6 +17,7 @@
#include <boost/fusion/sequence/intrinsic/empty.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
#include <boost/fusion/support/is_segmented.hpp>
+#include <boost/fusion/support/detail/result_of.hpp>
#include <boost/fusion/iterator/equal_to.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/value_of.hpp>
@@ -25,7 +26,6 @@
#include <boost/mpl/eval_if.hpp>
#include <boost/mpl/if.hpp>
#include <boost/mpl/bool.hpp>
-#include <boost/utility/result_of.hpp>
#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/add_reference.hpp>
diff --git a/boost/fusion/algorithm/iteration/iter_fold_fwd.hpp b/boost/fusion/algorithm/iteration/iter_fold_fwd.hpp
index 8e4898b..6c595cf 100644
--- a/boost/fusion/algorithm/iteration/iter_fold_fwd.hpp
+++ b/boost/fusion/algorithm/iteration/iter_fold_fwd.hpp
@@ -17,8 +17,8 @@ namespace boost { namespace fusion
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::iter_fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::iter_fold<
Seq
, State const
, F
@@ -26,8 +26,8 @@ namespace boost { namespace fusion
iter_fold(Seq& seq, State const& state, F f);
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::iter_fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::iter_fold<
Seq const
, State const
, F
@@ -35,8 +35,8 @@ namespace boost { namespace fusion
iter_fold(Seq const& seq, State const& state, F f);
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::iter_fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::iter_fold<
Seq
, State const
, F
@@ -44,8 +44,8 @@ namespace boost { namespace fusion
iter_fold(Seq& seq, State& state, F f);
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::iter_fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::iter_fold<
Seq const
, State const
, F
diff --git a/boost/fusion/algorithm/iteration/reverse_fold_fwd.hpp b/boost/fusion/algorithm/iteration/reverse_fold_fwd.hpp
index c5596e7..42c8ac2 100644
--- a/boost/fusion/algorithm/iteration/reverse_fold_fwd.hpp
+++ b/boost/fusion/algorithm/iteration/reverse_fold_fwd.hpp
@@ -17,8 +17,8 @@ namespace boost { namespace fusion
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::reverse_fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::reverse_fold<
Seq
, State const
, F
@@ -26,8 +26,8 @@ namespace boost { namespace fusion
reverse_fold(Seq& seq, State const& state, F f);
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::reverse_fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::reverse_fold<
Seq const
, State const
, F
@@ -35,8 +35,8 @@ namespace boost { namespace fusion
reverse_fold(Seq const& seq, State const& state, F f);
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::reverse_fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::reverse_fold<
Seq
, State const
, F
@@ -44,8 +44,8 @@ namespace boost { namespace fusion
reverse_fold(Seq& seq, State& state, F f);
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::reverse_fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::reverse_fold<
Seq const
, State const
, F
diff --git a/boost/fusion/algorithm/iteration/reverse_iter_fold_fwd.hpp b/boost/fusion/algorithm/iteration/reverse_iter_fold_fwd.hpp
index 7b49ea6..21d99de 100644
--- a/boost/fusion/algorithm/iteration/reverse_iter_fold_fwd.hpp
+++ b/boost/fusion/algorithm/iteration/reverse_iter_fold_fwd.hpp
@@ -17,8 +17,8 @@ namespace boost { namespace fusion
}
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::reverse_iter_fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::reverse_iter_fold<
Seq
, State const
, F
@@ -26,8 +26,8 @@ namespace boost { namespace fusion
reverse_iter_fold(Seq& seq, State const& state, F f);
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::reverse_iter_fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::reverse_iter_fold<
Seq const
, State const
, F
@@ -35,8 +35,8 @@ namespace boost { namespace fusion
reverse_iter_fold(Seq const& seq, State const& state, F f);
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::reverse_iter_fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::reverse_iter_fold<
Seq
, State const
, F
@@ -44,8 +44,8 @@ namespace boost { namespace fusion
reverse_iter_fold(Seq& seq, State& state, F f);
template<typename Seq, typename State, typename F>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::reverse_iter_fold<
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::reverse_iter_fold<
Seq const
, State const
, F
diff --git a/boost/fusion/algorithm/query/all.hpp b/boost/fusion/algorithm/query/all.hpp
index d30d795..5122af5 100644
--- a/boost/fusion/algorithm/query/all.hpp
+++ b/boost/fusion/algorithm/query/all.hpp
@@ -24,7 +24,7 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline bool
all(Sequence const& seq, F f)
{
diff --git a/boost/fusion/algorithm/query/any.hpp b/boost/fusion/algorithm/query/any.hpp
index 4ab9714..e1aad08 100644
--- a/boost/fusion/algorithm/query/any.hpp
+++ b/boost/fusion/algorithm/query/any.hpp
@@ -25,7 +25,7 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline bool
any(Sequence const& seq, F f)
{
diff --git a/boost/fusion/algorithm/query/count.hpp b/boost/fusion/algorithm/query/count.hpp
index a86bf4f..61fc056 100644
--- a/boost/fusion/algorithm/query/count.hpp
+++ b/boost/fusion/algorithm/query/count.hpp
@@ -26,9 +26,8 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename T>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
enable_if<
traits::is_sequence<Sequence>
, int
diff --git a/boost/fusion/algorithm/query/count_if.hpp b/boost/fusion/algorithm/query/count_if.hpp
index ac44ac6..8ef86b0 100644
--- a/boost/fusion/algorithm/query/count_if.hpp
+++ b/boost/fusion/algorithm/query/count_if.hpp
@@ -26,9 +26,8 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename F>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
enable_if<
traits::is_sequence<Sequence>
, int
diff --git a/boost/fusion/algorithm/query/detail/all.hpp b/boost/fusion/algorithm/query/detail/all.hpp
index 9c7b4c2..e7e1535 100644
--- a/boost/fusion/algorithm/query/detail/all.hpp
+++ b/boost/fusion/algorithm/query/detail/all.hpp
@@ -21,7 +21,7 @@
namespace boost { namespace fusion { namespace detail
{
template <typename First, typename Last, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline bool
linear_all(First const&, Last const&, F const&, mpl::true_)
{
@@ -29,12 +29,12 @@ namespace boost { namespace fusion { namespace detail
}
template <typename First, typename Last, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline bool
linear_all(First const& first, Last const& last, F& f, mpl::false_)
{
typename result_of::deref<First>::type x = *first;
- return f(x) &&
+ return f(x) &&
detail::linear_all(
fusion::next(first)
, last
@@ -43,7 +43,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename Sequence, typename F, typename Tag>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline bool
all(Sequence const& seq, F f, Tag)
{
@@ -60,11 +60,11 @@ namespace boost { namespace fusion { namespace detail
struct unrolled_all
{
template <typename It, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static bool call(It const& it, F f)
{
- return
- f(*it) &&
+ return
+ f(*it) &&
f(*fusion::advance_c<1>(it))&&
f(*fusion::advance_c<2>(it)) &&
f(*fusion::advance_c<3>(it)) &&
@@ -76,11 +76,11 @@ namespace boost { namespace fusion { namespace detail
struct unrolled_all<3>
{
template <typename It, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static bool call(It const& it, F f)
{
- return
- f(*it) &&
+ return
+ f(*it) &&
f(*fusion::advance_c<1>(it)) &&
f(*fusion::advance_c<2>(it));
}
@@ -90,11 +90,11 @@ namespace boost { namespace fusion { namespace detail
struct unrolled_all<2>
{
template <typename It, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static bool call(It const& it, F f)
{
- return
- f(*it) &&
+ return
+ f(*it) &&
f(*fusion::advance_c<1>(it));
}
};
@@ -103,7 +103,7 @@ namespace boost { namespace fusion { namespace detail
struct unrolled_all<1>
{
template <typename It, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static bool call(It const& it, F f)
{
return f(*it);
@@ -114,7 +114,7 @@ namespace boost { namespace fusion { namespace detail
struct unrolled_all<0>
{
template <typename It, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static bool call(It const& /*it*/, F /*f*/)
{
return true;
@@ -122,7 +122,7 @@ namespace boost { namespace fusion { namespace detail
};
template <typename Sequence, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline bool
all(Sequence const& seq, F f, random_access_traversal_tag)
{
diff --git a/boost/fusion/algorithm/query/detail/any.hpp b/boost/fusion/algorithm/query/detail/any.hpp
index 4e05368..43628ea 100644
--- a/boost/fusion/algorithm/query/detail/any.hpp
+++ b/boost/fusion/algorithm/query/detail/any.hpp
@@ -24,7 +24,7 @@ namespace boost { namespace fusion {
namespace detail
{
template <typename First, typename Last, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline bool
linear_any(First const&, Last const&, F const&, mpl::true_)
{
@@ -32,12 +32,12 @@ namespace detail
}
template <typename First, typename Last, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline bool
linear_any(First const& first, Last const& last, F& f, mpl::false_)
{
typename result_of::deref<First>::type x = *first;
- return f(x) ||
+ return f(x) ||
detail::linear_any(
fusion::next(first)
, last
@@ -46,7 +46,7 @@ namespace detail
}
template <typename Sequence, typename F, typename Tag>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline bool
any(Sequence const& seq, F f, Tag)
{
@@ -63,11 +63,11 @@ namespace detail
struct unrolled_any
{
template <typename It, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static bool call(It const& it, F f)
{
- return
- f(*it) ||
+ return
+ f(*it) ||
f(*fusion::advance_c<1>(it))||
f(*fusion::advance_c<2>(it)) ||
f(*fusion::advance_c<3>(it)) ||
@@ -79,11 +79,11 @@ namespace detail
struct unrolled_any<3>
{
template <typename It, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static bool call(It const& it, F f)
{
- return
- f(*it) ||
+ return
+ f(*it) ||
f(*fusion::advance_c<1>(it)) ||
f(*fusion::advance_c<2>(it));
}
@@ -93,11 +93,11 @@ namespace detail
struct unrolled_any<2>
{
template <typename It, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static bool call(It const& it, F f)
{
- return
- f(*it) ||
+ return
+ f(*it) ||
f(*fusion::advance_c<1>(it));
}
};
@@ -106,7 +106,7 @@ namespace detail
struct unrolled_any<1>
{
template <typename It, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static bool call(It const& it, F f)
{
return f(*it);
@@ -117,7 +117,7 @@ namespace detail
struct unrolled_any<0>
{
template <typename It, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static bool call(It const&, F)
{
return false;
@@ -125,7 +125,7 @@ namespace detail
};
template <typename Sequence, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline bool
any(Sequence const& seq, F f, random_access_traversal_tag)
{
diff --git a/boost/fusion/algorithm/query/detail/count.hpp b/boost/fusion/algorithm/query/detail/count.hpp
index 5e046f6..86714ff 100644
--- a/boost/fusion/algorithm/query/detail/count.hpp
+++ b/boost/fusion/algorithm/query/detail/count.hpp
@@ -25,10 +25,10 @@ namespace boost { namespace fusion { namespace detail
// T1 is convertible to T2 or vice versa
template <>
- struct compare_convertible<true>
+ struct compare_convertible<true>
{
template <typename T1, typename T2>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static bool
call(T1 const& x, T2 const& y)
{
@@ -41,7 +41,7 @@ namespace boost { namespace fusion { namespace detail
struct compare_convertible<false>
{
template <typename T1, typename T2>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static bool
call(T1 const&, T2 const&)
{
@@ -53,16 +53,16 @@ namespace boost { namespace fusion { namespace detail
struct count_compare
{
typedef typename detail::call_param<T1>::type param;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
count_compare(param in_x)
: x(in_x) {}
template <typename T2>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
bool
- operator()(T2 const& y)
+ operator()(T2 const& y) const
{
- return
+ return
compare_convertible<
mpl::or_<
is_convertible<T1, T2>
diff --git a/boost/fusion/algorithm/query/detail/count_if.hpp b/boost/fusion/algorithm/query/detail/count_if.hpp
index baf9fe9..17c67a0 100644
--- a/boost/fusion/algorithm/query/detail/count_if.hpp
+++ b/boost/fusion/algorithm/query/detail/count_if.hpp
@@ -24,7 +24,7 @@ namespace boost { namespace fusion {
namespace detail
{
template <typename First, typename Last, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline int
linear_count_if(First const&, Last const&, F const&, mpl::true_)
{
@@ -32,11 +32,11 @@ namespace detail
}
template <typename First, typename Last, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline int
linear_count_if(First const& first, Last const& last, F& f, mpl::false_)
{
- int n =
+ int n =
detail::linear_count_if(
fusion::next(first)
, last
@@ -48,7 +48,7 @@ namespace detail
}
template <typename Sequence, typename F, typename Tag>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline int
count_if(Sequence const& seq, F f, Tag)
{
@@ -65,7 +65,7 @@ namespace detail
struct unrolled_count_if
{
template<typename I0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static int call(I0 const& i0, F f)
{
int ct = unrolled_count_if<n-4>::
@@ -96,7 +96,7 @@ namespace detail
struct unrolled_count_if<3>
{
template<typename I0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static int call(I0 const& i0, F f)
{
int ct = 0;
@@ -121,7 +121,7 @@ namespace detail
struct unrolled_count_if<2>
{
template<typename I0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static int call(I0 const& i0, F f)
{
int ct = 0;
@@ -142,7 +142,7 @@ namespace detail
struct unrolled_count_if<1>
{
template<typename I0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static int call(I0 const& i0, F f)
{
int ct = 0;
@@ -157,7 +157,7 @@ namespace detail
struct unrolled_count_if<0>
{
template<typename I0, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static int call(I0 const&, F)
{
return 0;
@@ -165,7 +165,7 @@ namespace detail
};
template <typename Sequence, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline int
count_if(Sequence const& seq, F f, random_access_traversal_tag)
{
diff --git a/boost/fusion/algorithm/query/detail/find_if.hpp b/boost/fusion/algorithm/query/detail/find_if.hpp
index 41baab4..b200794 100644
--- a/boost/fusion/algorithm/query/detail/find_if.hpp
+++ b/boost/fusion/algorithm/query/detail/find_if.hpp
@@ -184,7 +184,7 @@ namespace detail
type;
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
recursive_call(Iterator const& iter, mpl::true_)
{
@@ -192,7 +192,7 @@ namespace detail
}
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
recursive_call(Iterator const& iter, mpl::false_)
{
@@ -200,7 +200,7 @@ namespace detail
}
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
recursive_call(Iterator const& iter)
{
@@ -209,7 +209,7 @@ namespace detail
}
template <typename Iterator, typename Tag>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
choose_call(Iterator const& iter, Tag)
{
@@ -217,7 +217,7 @@ namespace detail
}
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
choose_call(Iterator const& iter, random_access_traversal_tag)
{
@@ -226,7 +226,7 @@ namespace detail
}
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
iter_call(Iterator const& iter)
{
@@ -234,7 +234,7 @@ namespace detail
}
template <typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence& seq)
{
diff --git a/boost/fusion/algorithm/query/detail/segmented_find.hpp b/boost/fusion/algorithm/query/detail/segmented_find.hpp
index 21c13a4..d8533af 100644
--- a/boost/fusion/algorithm/query/detail/segmented_find.hpp
+++ b/boost/fusion/algorithm/query/detail/segmented_find.hpp
@@ -45,19 +45,19 @@ namespace boost { namespace fusion { namespace detail
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq, State const&state, Context const& context, segmented_find_fun)
{
return call_impl(seq, state, context, continue_type());
}
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call_impl(Sequence&, State const&state, Context const&, mpl::true_)
{
return state;
}
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call_impl(Sequence& seq, State const&, Context const& context, mpl::false_)
{
return fusion::make_segmented_iterator(fusion::find<T>(seq), context);
@@ -78,7 +78,7 @@ namespace boost { namespace fusion { namespace detail
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq)
{
return fusion::segmented_fold_until(
diff --git a/boost/fusion/algorithm/query/detail/segmented_find_if.hpp b/boost/fusion/algorithm/query/detail/segmented_find_if.hpp
index 798ed08..fd527c7 100644
--- a/boost/fusion/algorithm/query/detail/segmented_find_if.hpp
+++ b/boost/fusion/algorithm/query/detail/segmented_find_if.hpp
@@ -45,19 +45,19 @@ namespace boost { namespace fusion { namespace detail
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq, State const&state, Context const& context, segmented_find_if_fun)
{
return call_impl(seq, state, context, continue_type());
}
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call_impl(Sequence&, State const&state, Context const&, mpl::true_)
{
return state;
}
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call_impl(Sequence& seq, State const&, Context const& context, mpl::false_)
{
return fusion::make_segmented_iterator(fusion::find_if<Pred>(seq), context);
@@ -78,7 +78,7 @@ namespace boost { namespace fusion { namespace detail
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq)
{
return fusion::segmented_fold_until(
diff --git a/boost/fusion/algorithm/query/find.hpp b/boost/fusion/algorithm/query/find.hpp
index 56e53c3..41c22fb 100644
--- a/boost/fusion/algorithm/query/find.hpp
+++ b/boost/fusion/algorithm/query/find.hpp
@@ -47,8 +47,8 @@ namespace boost { namespace fusion
}
template <typename T, typename Sequence>
- BOOST_FUSION_GPU_ENABLED
- inline typename
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
lazy_disable_if<
is_const<Sequence>
, result_of::find<Sequence, T>
@@ -60,7 +60,7 @@ namespace boost { namespace fusion
}
template <typename T, typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::find<Sequence const, T>::type const
find(Sequence const& seq)
{
diff --git a/boost/fusion/algorithm/query/find_fwd.hpp b/boost/fusion/algorithm/query/find_fwd.hpp
index a43b5ea..c4fc0a9 100644
--- a/boost/fusion/algorithm/query/find_fwd.hpp
+++ b/boost/fusion/algorithm/query/find_fwd.hpp
@@ -20,8 +20,8 @@ namespace boost { namespace fusion
}
template <typename T, typename Sequence>
- BOOST_FUSION_GPU_ENABLED
- inline typename
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
lazy_disable_if<
is_const<Sequence>
, result_of::find<Sequence, T>
@@ -29,7 +29,7 @@ namespace boost { namespace fusion
find(Sequence& seq);
template <typename T, typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::find<Sequence const, T>::type const
find(Sequence const& seq);
}}
diff --git a/boost/fusion/algorithm/query/find_if.hpp b/boost/fusion/algorithm/query/find_if.hpp
index c9e5016..38601eb 100644
--- a/boost/fusion/algorithm/query/find_if.hpp
+++ b/boost/fusion/algorithm/query/find_if.hpp
@@ -42,8 +42,8 @@ namespace boost { namespace fusion
}
template <typename Pred, typename Sequence>
- BOOST_FUSION_GPU_ENABLED
- inline typename
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
lazy_disable_if<
is_const<Sequence>
, result_of::find_if<Sequence, Pred>
@@ -55,7 +55,7 @@ namespace boost { namespace fusion
}
template <typename Pred, typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::find_if<Sequence const, Pred>::type const
find_if(Sequence const& seq)
{
diff --git a/boost/fusion/algorithm/query/find_if_fwd.hpp b/boost/fusion/algorithm/query/find_if_fwd.hpp
index 419a68c..5c8abd5 100644
--- a/boost/fusion/algorithm/query/find_if_fwd.hpp
+++ b/boost/fusion/algorithm/query/find_if_fwd.hpp
@@ -21,8 +21,8 @@ namespace boost { namespace fusion
}
template <typename Pred, typename Sequence>
- BOOST_FUSION_GPU_ENABLED
- typename
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
lazy_disable_if<
is_const<Sequence>
, result_of::find_if<Sequence, Pred>
@@ -30,8 +30,8 @@ namespace boost { namespace fusion
find_if(Sequence& seq);
template <typename Pred, typename Sequence>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::find_if<Sequence const, Pred>::type const
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::find_if<Sequence const, Pred>::type const
find_if(Sequence const& seq);
}}
diff --git a/boost/fusion/algorithm/query/none.hpp b/boost/fusion/algorithm/query/none.hpp
index bb554e3..1fecdbf 100644
--- a/boost/fusion/algorithm/query/none.hpp
+++ b/boost/fusion/algorithm/query/none.hpp
@@ -23,7 +23,7 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline bool
none(Sequence const& seq, F f)
{
diff --git a/boost/fusion/algorithm/transformation/clear.hpp b/boost/fusion/algorithm/transformation/clear.hpp
index de64340..d2e42fe 100644
--- a/boost/fusion/algorithm/transformation/clear.hpp
+++ b/boost/fusion/algorithm/transformation/clear.hpp
@@ -22,7 +22,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::clear<Sequence const>::type
clear(Sequence const& /*seq*/)
{
diff --git a/boost/fusion/algorithm/transformation/detail/preprocessed/zip10.hpp b/boost/fusion/algorithm/transformation/detail/preprocessed/zip10.hpp
index 33f3536..b04a7ef 100644
--- a/boost/fusion/algorithm/transformation/detail/preprocessed/zip10.hpp
+++ b/boost/fusion/algorithm/transformation/detail/preprocessed/zip10.hpp
@@ -28,7 +28,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1>::type
zip(T0 const& t0 , T1 const& t1)
{
@@ -50,7 +50,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2)
{
@@ -72,7 +72,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3)
{
@@ -94,7 +94,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4)
{
@@ -116,7 +116,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5)
{
@@ -138,7 +138,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6)
{
@@ -160,7 +160,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7)
{
@@ -182,7 +182,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8)
{
@@ -204,7 +204,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9)
{
diff --git a/boost/fusion/algorithm/transformation/detail/preprocessed/zip20.hpp b/boost/fusion/algorithm/transformation/detail/preprocessed/zip20.hpp
index e7c790e..506c485 100644
--- a/boost/fusion/algorithm/transformation/detail/preprocessed/zip20.hpp
+++ b/boost/fusion/algorithm/transformation/detail/preprocessed/zip20.hpp
@@ -28,7 +28,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1>::type
zip(T0 const& t0 , T1 const& t1)
{
@@ -50,7 +50,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2)
{
@@ -72,7 +72,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3)
{
@@ -94,7 +94,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4)
{
@@ -116,7 +116,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5)
{
@@ -138,7 +138,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6)
{
@@ -160,7 +160,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7)
{
@@ -182,7 +182,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8)
{
@@ -204,7 +204,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9)
{
@@ -226,7 +226,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10)
{
@@ -248,7 +248,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11)
{
@@ -270,7 +270,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12)
{
@@ -292,7 +292,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13)
{
@@ -314,7 +314,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14)
{
@@ -336,7 +336,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15)
{
@@ -358,7 +358,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16)
{
@@ -380,7 +380,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17)
{
@@ -402,7 +402,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18)
{
@@ -424,7 +424,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19)
{
diff --git a/boost/fusion/algorithm/transformation/detail/preprocessed/zip30.hpp b/boost/fusion/algorithm/transformation/detail/preprocessed/zip30.hpp
index 215a0ce..61437f3 100644
--- a/boost/fusion/algorithm/transformation/detail/preprocessed/zip30.hpp
+++ b/boost/fusion/algorithm/transformation/detail/preprocessed/zip30.hpp
@@ -28,7 +28,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1>::type
zip(T0 const& t0 , T1 const& t1)
{
@@ -50,7 +50,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2)
{
@@ -72,7 +72,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3)
{
@@ -94,7 +94,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4)
{
@@ -116,7 +116,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5)
{
@@ -138,7 +138,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6)
{
@@ -160,7 +160,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7)
{
@@ -182,7 +182,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8)
{
@@ -204,7 +204,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9)
{
@@ -226,7 +226,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10)
{
@@ -248,7 +248,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11)
{
@@ -270,7 +270,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12)
{
@@ -292,7 +292,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13)
{
@@ -314,7 +314,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14)
{
@@ -336,7 +336,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15)
{
@@ -358,7 +358,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16)
{
@@ -380,7 +380,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17)
{
@@ -402,7 +402,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18)
{
@@ -424,7 +424,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19)
{
@@ -446,7 +446,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20)
{
@@ -468,7 +468,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21)
{
@@ -490,7 +490,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22)
{
@@ -512,7 +512,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23)
{
@@ -534,7 +534,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24)
{
@@ -556,7 +556,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25)
{
@@ -578,7 +578,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26)
{
@@ -600,7 +600,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27)
{
@@ -622,7 +622,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28)
{
@@ -644,7 +644,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29)
{
diff --git a/boost/fusion/algorithm/transformation/detail/preprocessed/zip40.hpp b/boost/fusion/algorithm/transformation/detail/preprocessed/zip40.hpp
index 9e37eed..77dbc9b 100644
--- a/boost/fusion/algorithm/transformation/detail/preprocessed/zip40.hpp
+++ b/boost/fusion/algorithm/transformation/detail/preprocessed/zip40.hpp
@@ -28,7 +28,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1>::type
zip(T0 const& t0 , T1 const& t1)
{
@@ -50,7 +50,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2)
{
@@ -72,7 +72,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3)
{
@@ -94,7 +94,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4)
{
@@ -116,7 +116,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5)
{
@@ -138,7 +138,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6)
{
@@ -160,7 +160,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7)
{
@@ -182,7 +182,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8)
{
@@ -204,7 +204,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9)
{
@@ -226,7 +226,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10)
{
@@ -248,7 +248,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11)
{
@@ -270,7 +270,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12)
{
@@ -292,7 +292,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13)
{
@@ -314,7 +314,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14)
{
@@ -336,7 +336,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15)
{
@@ -358,7 +358,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16)
{
@@ -380,7 +380,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17)
{
@@ -402,7 +402,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18)
{
@@ -424,7 +424,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19)
{
@@ -446,7 +446,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20)
{
@@ -468,7 +468,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21)
{
@@ -490,7 +490,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22)
{
@@ -512,7 +512,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23)
{
@@ -534,7 +534,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24)
{
@@ -556,7 +556,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25)
{
@@ -578,7 +578,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26)
{
@@ -600,7 +600,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27)
{
@@ -622,7 +622,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28)
{
@@ -644,7 +644,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29)
{
@@ -666,7 +666,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30)
{
@@ -688,7 +688,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31)
{
@@ -710,7 +710,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32)
{
@@ -732,7 +732,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33)
{
@@ -754,7 +754,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34)
{
@@ -776,7 +776,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35)
{
@@ -798,7 +798,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36)
{
@@ -820,7 +820,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37)
{
@@ -842,7 +842,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37 , const T38>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38)
{
@@ -864,7 +864,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37 , const T38 , const T39>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39)
{
diff --git a/boost/fusion/algorithm/transformation/detail/preprocessed/zip50.hpp b/boost/fusion/algorithm/transformation/detail/preprocessed/zip50.hpp
index ecf300d..ea44317 100644
--- a/boost/fusion/algorithm/transformation/detail/preprocessed/zip50.hpp
+++ b/boost/fusion/algorithm/transformation/detail/preprocessed/zip50.hpp
@@ -28,7 +28,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1>::type
zip(T0 const& t0 , T1 const& t1)
{
@@ -50,7 +50,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2)
{
@@ -72,7 +72,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3)
{
@@ -94,7 +94,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4)
{
@@ -116,7 +116,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5)
{
@@ -138,7 +138,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6)
{
@@ -160,7 +160,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7)
{
@@ -182,7 +182,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8)
{
@@ -204,7 +204,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9)
{
@@ -226,7 +226,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10)
{
@@ -248,7 +248,7 @@ namespace boost { namespace fusion
};
}
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11)
{
@@ -270,7 +270,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12)
{
@@ -292,7 +292,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13)
{
@@ -314,7 +314,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14)
{
@@ -336,7 +336,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15)
{
@@ -358,7 +358,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16)
{
@@ -380,7 +380,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17)
{
@@ -402,7 +402,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18)
{
@@ -424,7 +424,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19)
{
@@ -446,7 +446,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20)
{
@@ -468,7 +468,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21)
{
@@ -490,7 +490,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22)
{
@@ -512,7 +512,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23)
{
@@ -534,7 +534,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24)
{
@@ -556,7 +556,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25)
{
@@ -578,7 +578,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26)
{
@@ -600,7 +600,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27)
{
@@ -622,7 +622,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28)
{
@@ -644,7 +644,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29)
{
@@ -666,7 +666,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30)
{
@@ -688,7 +688,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31)
{
@@ -710,7 +710,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32)
{
@@ -732,7 +732,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33)
{
@@ -754,7 +754,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34)
{
@@ -776,7 +776,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35)
{
@@ -798,7 +798,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36)
{
@@ -820,7 +820,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37)
{
@@ -842,7 +842,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37 , const T38>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38)
{
@@ -864,7 +864,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37 , const T38 , const T39>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39)
{
@@ -886,7 +886,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37 , const T38 , const T39 , const T40>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40)
{
@@ -908,7 +908,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37 , const T38 , const T39 , const T40 , const T41>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41)
{
@@ -930,7 +930,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37 , const T38 , const T39 , const T40 , const T41 , const T42>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42)
{
@@ -952,7 +952,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37 , const T38 , const T39 , const T40 , const T41 , const T42 , const T43>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42 , T43 const& t43)
{
@@ -974,7 +974,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37 , const T38 , const T39 , const T40 , const T41 , const T42 , const T43 , const T44>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42 , T43 const& t43 , T44 const& t44)
{
@@ -996,7 +996,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37 , const T38 , const T39 , const T40 , const T41 , const T42 , const T43 , const T44 , const T45>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42 , T43 const& t43 , T44 const& t44 , T45 const& t45)
{
@@ -1018,7 +1018,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37 , const T38 , const T39 , const T40 , const T41 , const T42 , const T43 , const T44 , const T45 , const T46>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42 , T43 const& t43 , T44 const& t44 , T45 const& t45 , T46 const& t46)
{
@@ -1040,7 +1040,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37 , const T38 , const T39 , const T40 , const T41 , const T42 , const T43 , const T44 , const T45 , const T46 , const T47>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42 , T43 const& t43 , T44 const& t44 , T45 const& t45 , T46 const& t46 , T47 const& t47)
{
@@ -1062,7 +1062,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37 , const T38 , const T39 , const T40 , const T41 , const T42 , const T43 , const T44 , const T45 , const T46 , const T47 , const T48>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42 , T43 const& t43 , T44 const& t44 , T45 const& t45 , T46 const& t46 , T47 const& t47 , T48 const& t48)
{
@@ -1084,7 +1084,7 @@ namespace boost { namespace fusion
};
}
template<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>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<const T0 , const T1 , const T2 , const T3 , const T4 , const T5 , const T6 , const T7 , const T8 , const T9 , const T10 , const T11 , const T12 , const T13 , const T14 , const T15 , const T16 , const T17 , const T18 , const T19 , const T20 , const T21 , const T22 , const T23 , const T24 , const T25 , const T26 , const T27 , const T28 , const T29 , const T30 , const T31 , const T32 , const T33 , const T34 , const T35 , const T36 , const T37 , const T38 , const T39 , const T40 , const T41 , const T42 , const T43 , const T44 , const T45 , const T46 , const T47 , const T48 , const T49>::type
zip(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42 , T43 const& t43 , T44 const& t44 , T45 const& t45 , T46 const& t46 , T47 const& t47 , T48 const& t48 , T49 const& t49)
{
diff --git a/boost/fusion/algorithm/transformation/detail/replace.hpp b/boost/fusion/algorithm/transformation/detail/replace.hpp
index 5a7516b..88c4faa 100644
--- a/boost/fusion/algorithm/transformation/detail/replace.hpp
+++ b/boost/fusion/algorithm/transformation/detail/replace.hpp
@@ -21,7 +21,7 @@ namespace boost { namespace fusion { namespace detail
struct replacer_helper<false>
{
template <typename U, typename T>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static U&
call(U& x, T const&, T const&)
{
@@ -33,7 +33,7 @@ namespace boost { namespace fusion { namespace detail
struct replacer_helper<true>
{
template <typename U, typename T>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static U
call(U& x, T const& old_value, T const& new_value)
{
@@ -44,7 +44,7 @@ namespace boost { namespace fusion { namespace detail
template <typename T>
struct replacer
{
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
replacer(T const& in_old_value, T const& in_new_value)
: old_value(in_old_value), new_value(in_new_value) {}
@@ -59,9 +59,9 @@ namespace boost { namespace fusion { namespace detail
mpl::if_<is_convertible<T, value>, value, value const&>::type
type;
};
-
+
template <typename U>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
typename result<replacer(U)>::type
operator()(U const& x) const
{
diff --git a/boost/fusion/algorithm/transformation/detail/replace_if.hpp b/boost/fusion/algorithm/transformation/detail/replace_if.hpp
index 5b9663b..2ecff68 100644
--- a/boost/fusion/algorithm/transformation/detail/replace_if.hpp
+++ b/boost/fusion/algorithm/transformation/detail/replace_if.hpp
@@ -21,7 +21,7 @@ namespace boost { namespace fusion { namespace detail
struct replacer_if_helper<false>
{
template <typename U, typename F, typename T>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static U&
call(U& x, F&, T const&)
{
@@ -33,7 +33,7 @@ namespace boost { namespace fusion { namespace detail
struct replacer_if_helper<true>
{
template <typename U, typename F, typename T>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static U
call(U& x, F& f, T const& new_value)
{
@@ -44,7 +44,7 @@ namespace boost { namespace fusion { namespace detail
template <typename F, typename T>
struct replacer_if
{
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
replacer_if(F in_f, T const& in_new_value)
: f(in_f), new_value(in_new_value) {}
@@ -59,9 +59,9 @@ namespace boost { namespace fusion { namespace detail
mpl::if_<is_convertible<T, value>, value, value const&>::type
type;
};
-
+
template <typename U>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
typename result<replacer_if(U)>::type
operator()(U const& x) const
{
diff --git a/boost/fusion/algorithm/transformation/erase.hpp b/boost/fusion/algorithm/transformation/erase.hpp
index 6ffdb4d..0f3b8a1 100644
--- a/boost/fusion/algorithm/transformation/erase.hpp
+++ b/boost/fusion/algorithm/transformation/erase.hpp
@@ -38,21 +38,21 @@ namespace boost { namespace fusion
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(First const& first, mpl::false_)
{
return fusion::next(convert_iterator<First>::call(first));
}
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(First const& first, mpl::true_)
{
return convert_iterator<First>::call(first);
}
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(First const& first)
{
@@ -61,7 +61,7 @@ namespace boost { namespace fusion
};
struct use_default;
-
+
template <class T, class Default>
struct fusion_default_help
: mpl::if_<
@@ -71,7 +71,7 @@ namespace boost { namespace fusion
>
{
};
-
+
template <
typename Sequence
, typename First
@@ -89,7 +89,7 @@ namespace boost { namespace fusion
, typename compute_erase_last<Sequence, First>::type
>::type
LastType;
-
+
typedef typename convert_iterator<FirstType>::type first_type;
typedef typename convert_iterator<LastType>::type last_type;
typedef iterator_range<seq_first_type, first_type> left_type;
@@ -99,8 +99,8 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename First>
- BOOST_FUSION_GPU_ENABLED
- typename
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
, typename result_of::erase<Sequence const, First>
@@ -122,8 +122,8 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename First, typename Last>
- BOOST_FUSION_GPU_ENABLED
- typename result_of::erase<Sequence const, First, Last>::type
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename result_of::erase<Sequence const, First, Last>::type
erase(Sequence const& seq, First const& first, Last const& last)
{
typedef result_of::erase<Sequence const, First, Last> result_of;
diff --git a/boost/fusion/algorithm/transformation/erase_key.hpp b/boost/fusion/algorithm/transformation/erase_key.hpp
index 4334004..3757f46 100644
--- a/boost/fusion/algorithm/transformation/erase_key.hpp
+++ b/boost/fusion/algorithm/transformation/erase_key.hpp
@@ -24,7 +24,7 @@ namespace boost { namespace fusion
}
template <typename Key, typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::erase_key<Sequence const, Key>::type
erase_key(Sequence const& seq)
{
diff --git a/boost/fusion/algorithm/transformation/filter.hpp b/boost/fusion/algorithm/transformation/filter.hpp
index 2e290e2..2fc6272 100644
--- a/boost/fusion/algorithm/transformation/filter.hpp
+++ b/boost/fusion/algorithm/transformation/filter.hpp
@@ -22,9 +22,9 @@ namespace boost { namespace fusion
typedef filter_view<Sequence, is_same<mpl::_, T> > type;
};
}
-
+
template <typename T, typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::filter<Sequence const, T>::type
filter(Sequence const& seq)
{
diff --git a/boost/fusion/algorithm/transformation/filter_if.hpp b/boost/fusion/algorithm/transformation/filter_if.hpp
index 1b9f0d3..ca28e0e 100644
--- a/boost/fusion/algorithm/transformation/filter_if.hpp
+++ b/boost/fusion/algorithm/transformation/filter_if.hpp
@@ -20,9 +20,9 @@ namespace boost { namespace fusion
typedef filter_view<Sequence, Pred> type;
};
}
-
+
template <typename Pred, typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::filter_if<Sequence const, Pred>::type
filter_if(Sequence const& seq)
{
diff --git a/boost/fusion/algorithm/transformation/flatten.hpp b/boost/fusion/algorithm/transformation/flatten.hpp
index 9cd81fa..e3cfa98 100644
--- a/boost/fusion/algorithm/transformation/flatten.hpp
+++ b/boost/fusion/algorithm/transformation/flatten.hpp
@@ -25,13 +25,15 @@ namespace boost { namespace fusion { namespace result_of
namespace boost { namespace fusion
{
template <typename Sequence>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::flatten<Sequence>::type
flatten(Sequence& view)
{
return flatten_view<Sequence>(view);
}
-
+
template <typename Sequence>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::flatten<Sequence const>::type
flatten(Sequence const& view)
{
diff --git a/boost/fusion/algorithm/transformation/insert.hpp b/boost/fusion/algorithm/transformation/insert.hpp
index 7859022..44e5965 100644
--- a/boost/fusion/algorithm/transformation/insert.hpp
+++ b/boost/fusion/algorithm/transformation/insert.hpp
@@ -41,9 +41,8 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename Position, typename T>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
, result_of::insert<Sequence const, Position, T>
diff --git a/boost/fusion/algorithm/transformation/insert_range.hpp b/boost/fusion/algorithm/transformation/insert_range.hpp
index 660ed17..40e64e1 100644
--- a/boost/fusion/algorithm/transformation/insert_range.hpp
+++ b/boost/fusion/algorithm/transformation/insert_range.hpp
@@ -36,7 +36,7 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename Position, typename Range>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::insert_range<Sequence const, Position, Range const>::type
insert_range(Sequence const& seq, Position const& pos, Range const& range)
{
diff --git a/boost/fusion/algorithm/transformation/join.hpp b/boost/fusion/algorithm/transformation/join.hpp
index 51af053..8be4922 100644
--- a/boost/fusion/algorithm/transformation/join.hpp
+++ b/boost/fusion/algorithm/transformation/join.hpp
@@ -23,7 +23,7 @@ namespace boost { namespace fusion {
}
template<typename LhSequence, typename RhSequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::join<LhSequence const, RhSequence const>::type
join(LhSequence const& lhs, RhSequence const& rhs)
{
diff --git a/boost/fusion/algorithm/transformation/pop_back.hpp b/boost/fusion/algorithm/transformation/pop_back.hpp
index b20b500..2f55fa5 100644
--- a/boost/fusion/algorithm/transformation/pop_back.hpp
+++ b/boost/fusion/algorithm/transformation/pop_back.hpp
@@ -33,7 +33,7 @@ namespace boost { namespace fusion
static bool const is_last = IsLast;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
pop_back_iterator(Iterator_ const& iterator_base)
: base_type(iterator_base) {}
@@ -42,7 +42,7 @@ namespace boost { namespace fusion
{
typedef pop_back_iterator<BaseIterator, is_last> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(BaseIterator const& i)
{
@@ -94,7 +94,7 @@ namespace boost { namespace fusion
typedef pop_back_iterator<base_prior, false> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& i)
{
@@ -116,7 +116,7 @@ namespace boost { namespace fusion
typedef pop_back_iterator<base_prior, false> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& i)
{
@@ -152,7 +152,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::pop_back<Sequence const>::type
pop_back(Sequence const& seq)
{
diff --git a/boost/fusion/algorithm/transformation/pop_front.hpp b/boost/fusion/algorithm/transformation/pop_front.hpp
index 636ab12..11b7f6e 100644
--- a/boost/fusion/algorithm/transformation/pop_front.hpp
+++ b/boost/fusion/algorithm/transformation/pop_front.hpp
@@ -20,19 +20,19 @@ namespace boost { namespace fusion
template <typename Sequence>
struct pop_front
{
- typedef
+ typedef
iterator_range<
typename next<
typename begin<Sequence>::type
>::type
, typename end<Sequence>::type
- >
+ >
type;
};
}
template <typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::pop_front<Sequence const>::type
pop_front(Sequence const& seq)
{
diff --git a/boost/fusion/algorithm/transformation/push_back.hpp b/boost/fusion/algorithm/transformation/push_back.hpp
index 484425d..51c2569 100644
--- a/boost/fusion/algorithm/transformation/push_back.hpp
+++ b/boost/fusion/algorithm/transformation/push_back.hpp
@@ -27,9 +27,8 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename T>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
, result_of::push_back<Sequence const, T>
diff --git a/boost/fusion/algorithm/transformation/push_front.hpp b/boost/fusion/algorithm/transformation/push_front.hpp
index bda056b..a1b7b39 100644
--- a/boost/fusion/algorithm/transformation/push_front.hpp
+++ b/boost/fusion/algorithm/transformation/push_front.hpp
@@ -27,9 +27,8 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename T>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
, result_of::push_front<Sequence const, T>
diff --git a/boost/fusion/algorithm/transformation/remove.hpp b/boost/fusion/algorithm/transformation/remove.hpp
index 18dfd1d..f8bebf7 100644
--- a/boost/fusion/algorithm/transformation/remove.hpp
+++ b/boost/fusion/algorithm/transformation/remove.hpp
@@ -24,7 +24,7 @@ namespace boost { namespace fusion
}
template <typename T, typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::remove<Sequence const, T>::type
remove(Sequence const& seq)
{
diff --git a/boost/fusion/algorithm/transformation/remove_if.hpp b/boost/fusion/algorithm/transformation/remove_if.hpp
index 4024883..5497e3a 100644
--- a/boost/fusion/algorithm/transformation/remove_if.hpp
+++ b/boost/fusion/algorithm/transformation/remove_if.hpp
@@ -24,7 +24,7 @@ namespace boost { namespace fusion
}
template <typename Pred, typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::remove_if<Sequence const, Pred>::type
remove_if(Sequence const& seq)
{
diff --git a/boost/fusion/algorithm/transformation/replace.hpp b/boost/fusion/algorithm/transformation/replace.hpp
index a0a9885..4d754cc 100644
--- a/boost/fusion/algorithm/transformation/replace.hpp
+++ b/boost/fusion/algorithm/transformation/replace.hpp
@@ -25,9 +25,8 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename T>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
enable_if<
traits::is_sequence<Sequence>
, typename result_of::replace<Sequence const, T>::type
diff --git a/boost/fusion/algorithm/transformation/replace_if.hpp b/boost/fusion/algorithm/transformation/replace_if.hpp
index da3557a..8a2bddc 100644
--- a/boost/fusion/algorithm/transformation/replace_if.hpp
+++ b/boost/fusion/algorithm/transformation/replace_if.hpp
@@ -26,9 +26,8 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename F, typename T>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
enable_if<
traits::is_sequence<Sequence>
, typename result_of::replace_if<Sequence const, F, T>::type
diff --git a/boost/fusion/algorithm/transformation/reverse.hpp b/boost/fusion/algorithm/transformation/reverse.hpp
index 384224d..53de417 100644
--- a/boost/fusion/algorithm/transformation/reverse.hpp
+++ b/boost/fusion/algorithm/transformation/reverse.hpp
@@ -24,9 +24,8 @@ namespace boost { namespace fusion
}
template <typename Sequence>
- BOOST_FUSION_GPU_ENABLED
- inline
- typename
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ inline typename
enable_if<
traits::is_sequence<Sequence>
, reverse_view<Sequence const>
diff --git a/boost/fusion/algorithm/transformation/transform.hpp b/boost/fusion/algorithm/transformation/transform.hpp
index 94e4546..6a487cc 100644
--- a/boost/fusion/algorithm/transformation/transform.hpp
+++ b/boost/fusion/algorithm/transformation/transform.hpp
@@ -34,7 +34,7 @@ namespace boost { namespace fusion
}
template <typename Sequence, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::transform<Sequence const, F>::type
transform(Sequence const& seq, F f)
{
@@ -42,7 +42,7 @@ namespace boost { namespace fusion
}
template <typename Sequence1, typename Sequence2, typename F>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::transform<Sequence1 const, Sequence2 const, F>::type
transform(Sequence1 const& seq1, Sequence2 const& seq2, F f)
{
diff --git a/boost/fusion/algorithm/transformation/zip.hpp b/boost/fusion/algorithm/transformation/zip.hpp
index 796ec9e..e94efc8 100644
--- a/boost/fusion/algorithm/transformation/zip.hpp
+++ b/boost/fusion/algorithm/transformation/zip.hpp
@@ -101,7 +101,7 @@ namespace boost { namespace fusion
#define FUSION_REF_PARAM(z, n, data) const T ## n&
template<BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, typename T)>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::zip<BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, const T)>::type
zip(BOOST_PP_ENUM_BINARY_PARAMS(ZIP_ITERATION, T, const& t))
{
diff --git a/boost/fusion/container/deque/back_extended_deque.hpp b/boost/fusion/container/deque/back_extended_deque.hpp
index a99acc7..04b1d41 100644
--- a/boost/fusion/container/deque/back_extended_deque.hpp
+++ b/boost/fusion/container/deque/back_extended_deque.hpp
@@ -8,6 +8,7 @@
#if !defined(BOOST_FUSION_BACK_EXTENDED_DEQUE_26112006_2209)
#define BOOST_FUSION_BACK_EXTENDED_DEQUE_26112006_2209
+#include <boost/config.hpp>
#include <boost/fusion/support/config.hpp>
#include <boost/mpl/int.hpp>
@@ -28,22 +29,22 @@ namespace boost { namespace fusion
typedef mpl::int_<(result_of::size<Deque>::value + 1)> size;
template <typename Arg>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
back_extended_deque(Deque const& deque, Arg const& val)
: base(val, deque)
{}
#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
template <typename Arg>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
back_extended_deque(Deque const& deque, Arg& val)
: base(val, deque)
{}
#else
template <typename Arg>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
back_extended_deque(Deque const& deque, Arg&& val)
- : base(std::forward<Arg>(val), deque)
+ : base(BOOST_FUSION_FWD_ELEM(Arg, val), deque)
{}
#endif
};
diff --git a/boost/fusion/container/deque/convert.hpp b/boost/fusion/container/deque/convert.hpp
index f791519..9a4bf01 100644
--- a/boost/fusion/container/deque/convert.hpp
+++ b/boost/fusion/container/deque/convert.hpp
@@ -39,7 +39,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::as_deque<Sequence>::type
as_deque(Sequence& seq)
{
@@ -48,7 +48,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::as_deque<Sequence const>::type
as_deque(Sequence const& seq)
{
diff --git a/boost/fusion/container/deque/deque.hpp b/boost/fusion/container/deque/deque.hpp
index 6fd3e1b0..9691905 100644
--- a/boost/fusion/container/deque/deque.hpp
+++ b/boost/fusion/container/deque/deque.hpp
@@ -50,20 +50,20 @@ namespace boost { namespace fusion
typedef bidirectional_traversal_tag category;
typedef mpl::int_<0> size;
typedef mpl::int_<0> next_up;
- typedef mpl::int_<0> next_down;
+ typedef mpl::int_<-1> next_down;
typedef mpl::false_ is_view;
template <typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(Sequence const&,
typename enable_if<
mpl::and_<
traits::is_sequence<Sequence>
- , result_of::empty<Sequence>>>::type* /*dummy*/ = 0)
+ , result_of::empty<Sequence>>>::type* /*dummy*/ = 0) BOOST_NOEXCEPT
{}
- BOOST_FUSION_GPU_ENABLED
- deque() {}
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ deque() BOOST_NOEXCEPT {}
};
template <typename Head, typename ...Tail>
@@ -76,74 +76,85 @@ namespace boost { namespace fusion
typedef typename detail::deque_keyed_values<Head, Tail...>::type base;
typedef mpl::int_<(sizeof ...(Tail) + 1)> size;
typedef mpl::int_<size::value> next_up;
- typedef mpl::int_<((size::value == 0) ? 0 : -1)> next_down;
+ typedef mpl::int_<-1> next_down;
typedef mpl::false_ is_view;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque()
{}
- template <typename ...Elements>
- BOOST_FUSION_GPU_ENABLED
- deque(deque<Elements...> const& seq)
+ template <typename Head_, typename ...Tail_, typename =
+ typename enable_if<is_convertible<Head_, Head> >::type
+ >
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ deque(deque<Head_, Tail_...> const& seq)
: base(seq)
{}
- template <typename ...Elements>
- BOOST_FUSION_GPU_ENABLED
- deque(deque<Elements...>& seq)
+ template <typename Head_, typename ...Tail_, typename =
+ typename enable_if<is_convertible<Head_, Head> >::type
+ >
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ deque(deque<Head_, Tail_...>& seq)
: base(seq)
{}
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
- template <typename ...Elements>
- BOOST_FUSION_GPU_ENABLED
- deque(deque<Elements...>&& seq)
- : base(std::forward<deque<Elements...>>(seq))
+ template <typename Head_, typename ...Tail_, typename =
+ typename enable_if<is_convertible<Head_, Head> >::type
+ >
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ deque(deque<Head_, Tail_...>&& seq)
+ : base(std::forward<deque<Head_, Tail_...>>(seq))
{}
#endif
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(deque const& seq)
: base(seq)
{}
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(deque&& seq)
: base(std::forward<deque>(seq))
{}
#endif
- BOOST_FUSION_GPU_ENABLED
- explicit deque(Head const& head, Tail const&... tail)
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ explicit deque(typename detail::call_param<Head>::type head
+ , typename detail::call_param<Tail>::type... tail)
: base(detail::deque_keyed_values<Head, Tail...>::construct(head, tail...))
{}
- template <typename Head_, typename ...Tail_>
- BOOST_FUSION_GPU_ENABLED
- explicit deque(Head_ const& head, Tail_ const&... tail)
- : base(detail::deque_keyed_values<Head_, Tail_...>::construct(head, tail...))
- {}
-
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
- template <typename Head_, typename ...Tail_>
- BOOST_FUSION_GPU_ENABLED
+ template <typename Head_, typename ...Tail_, typename =
+ typename enable_if<is_convertible<Head_, Head> >::type
+ >
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit deque(Head_&& head, Tail_&&... tail)
: base(detail::deque_keyed_values<Head, Tail...>
- ::forward_(std::forward<Head_>(head), std::forward<Tail_>(tail)...))
+ ::forward_(BOOST_FUSION_FWD_ELEM(Head_, head), BOOST_FUSION_FWD_ELEM(Tail_, tail)...))
+ {}
+#else
+ template <typename Head_, typename ...Tail_, typename =
+ typename enable_if<is_convertible<Head_, Head> >::type
+ >
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ explicit deque(Head_ const& head, Tail_ const&... tail)
+ : base(detail::deque_keyed_values<Head_, Tail_...>::construct(head, tail...))
{}
#endif
template <typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit deque(Sequence const& seq
, typename disable_if<is_convertible<Sequence, Head> >::type* /*dummy*/ = 0)
: base(base::from_iterator(fusion::begin(seq)))
{}
template <typename ...Elements>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque& operator=(deque<Elements...> const& rhs)
{
base::operator=(rhs);
@@ -151,7 +162,7 @@ namespace boost { namespace fusion
}
template <typename T>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque& operator=(T const& rhs)
{
base::operator=(rhs);
@@ -160,10 +171,10 @@ namespace boost { namespace fusion
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
template <typename T>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque& operator=(T&& rhs)
{
- base::operator=(std::forward<T>(rhs));
+ base::operator=(BOOST_FUSION_FWD_ELEM(T, rhs));
return *this;
}
#endif
diff --git a/boost/fusion/container/deque/deque_fwd.hpp b/boost/fusion/container/deque/deque_fwd.hpp
index 639c00e..ebbeb4c 100644
--- a/boost/fusion/container/deque/deque_fwd.hpp
+++ b/boost/fusion/container/deque/deque_fwd.hpp
@@ -11,9 +11,8 @@
#include <boost/fusion/support/config.hpp>
#include <boost/config.hpp>
-#if (defined(BOOST_NO_CXX11_DECLTYPE) \
- || defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) \
- || defined(BOOST_NO_CXX11_RVALUE_REFERENCES)) \
+#if (defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) \
+ || defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS)) \
|| (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES))
# if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE)
# undef BOOST_FUSION_HAS_VARIADIC_DEQUE
@@ -24,8 +23,15 @@
# endif
#endif
+// MSVC variadics at this point in time is not ready yet (ICE!)
+#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1900))
+# if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE)
+# undef BOOST_FUSION_HAS_VARIADIC_DEQUE
+# endif
+#endif
+
///////////////////////////////////////////////////////////////////////////////
-// With no decltype and variadics, we will use the C++03 version
+// With no variadics, we will use the C++03 version
///////////////////////////////////////////////////////////////////////////////
#if !defined(BOOST_FUSION_HAS_VARIADIC_DEQUE)
# include <boost/fusion/container/deque/detail/cpp03/deque_fwd.hpp>
diff --git a/boost/fusion/container/deque/deque_iterator.hpp b/boost/fusion/container/deque/deque_iterator.hpp
index c61d6f9..c220379 100644
--- a/boost/fusion/container/deque/deque_iterator.hpp
+++ b/boost/fusion/container/deque/deque_iterator.hpp
@@ -11,9 +11,14 @@
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/iterator/iterator_facade.hpp>
#include <boost/fusion/container/deque/detail/keyed_element.hpp>
+#include <boost/mpl/int.hpp>
#include <boost/mpl/minus.hpp>
#include <boost/mpl/equal_to.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/if.hpp>
#include <boost/type_traits/is_const.hpp>
+#include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/add_reference.hpp>
namespace boost { namespace fusion {
@@ -26,7 +31,7 @@ namespace boost { namespace fusion {
typedef Seq sequence;
typedef mpl::int_<Pos> index;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque_iterator(Seq& seq)
: seq_(seq)
{}
@@ -49,7 +54,7 @@ namespace boost { namespace fusion {
add_const<element_type>,
mpl::identity<element_type> >::type>::type type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& it)
{
@@ -64,7 +69,7 @@ namespace boost { namespace fusion {
typedef typename Iterator::sequence sequence;
typedef deque_iterator<sequence, index::value + N::value> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& i)
{
@@ -91,7 +96,7 @@ namespace boost { namespace fusion {
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(I1 const&, I2 const&)
{
@@ -113,4 +118,13 @@ namespace boost { namespace fusion {
}}
+#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
+namespace std
+{
+ template <typename Seq, int Pos>
+ struct iterator_traits< ::boost::fusion::deque_iterator<Seq, Pos> >
+ { };
+}
+#endif
+
#endif
diff --git a/boost/fusion/container/deque/detail/at_impl.hpp b/boost/fusion/container/deque/detail/at_impl.hpp
index 4c5ffa9..3edf482 100644
--- a/boost/fusion/container/deque/detail/at_impl.hpp
+++ b/boost/fusion/container/deque/detail/at_impl.hpp
@@ -54,7 +54,7 @@ namespace boost { namespace fusion
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq)
{
return seq.get(adjusted_index());
diff --git a/boost/fusion/container/deque/detail/begin_impl.hpp b/boost/fusion/container/deque/detail/begin_impl.hpp
index 8e7f263..27b4f41 100644
--- a/boost/fusion/container/deque/detail/begin_impl.hpp
+++ b/boost/fusion/container/deque/detail/begin_impl.hpp
@@ -11,9 +11,6 @@
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/container/deque/deque_iterator.hpp>
-#include <boost/mpl/equal_to.hpp>
-#include <boost/mpl/if.hpp>
-
namespace boost { namespace fusion
{
struct deque_tag;
@@ -29,15 +26,11 @@ namespace boost { namespace fusion
template<typename Sequence>
struct apply
{
- typedef typename
- mpl::if_c<
- (Sequence::next_down::value == Sequence::next_up::value)
- , deque_iterator<Sequence, 0>
- , deque_iterator<Sequence, (Sequence::next_down::value + 1)>
- >::type
+ typedef
+ deque_iterator<Sequence, (Sequence::next_down::value + 1)>
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq)
{
return type(seq);
diff --git a/boost/fusion/container/deque/detail/build_deque.hpp b/boost/fusion/container/deque/detail/build_deque.hpp
index d555c6c..4dd990a 100644
--- a/boost/fusion/container/deque/detail/build_deque.hpp
+++ b/boost/fusion/container/deque/detail/build_deque.hpp
@@ -26,7 +26,7 @@ namespace boost { namespace fusion { namespace detail
struct build_deque<First, Last, true>
{
typedef deque<> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(First const&, Last const&)
{
@@ -42,7 +42,7 @@ namespace boost { namespace fusion { namespace detail
{
typedef deque<T, Rest...> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(T const& first, deque<Rest...> const& rest)
{
@@ -64,7 +64,7 @@ namespace boost { namespace fusion { namespace detail
typedef typename push_front::type type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(First const& f, Last const& l)
{
diff --git a/boost/fusion/container/deque/detail/convert_impl.hpp b/boost/fusion/container/deque/detail/convert_impl.hpp
index f8ff542..ba9b847 100644
--- a/boost/fusion/container/deque/detail/convert_impl.hpp
+++ b/boost/fusion/container/deque/detail/convert_impl.hpp
@@ -37,7 +37,8 @@ namespace boost { namespace fusion
{
typedef result_of::as_deque<Sequence> gen;
typedef typename gen::type type;
- BOOST_FUSION_GPU_ENABLED
+
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq)
{
return gen::call(seq);
diff --git a/boost/fusion/container/deque/detail/cpp03/as_deque.hpp b/boost/fusion/container/deque/detail/cpp03/as_deque.hpp
index 650cd70..e95daf3 100644
--- a/boost/fusion/container/deque/detail/cpp03/as_deque.hpp
+++ b/boost/fusion/container/deque/detail/cpp03/as_deque.hpp
@@ -23,6 +23,8 @@
namespace boost { namespace fusion { namespace detail
{
+BOOST_FUSION_BARRIER_BEGIN
+
template <int size>
struct as_deque;
@@ -36,13 +38,15 @@ namespace boost { namespace fusion { namespace detail
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator)
{
return deque<>();
}
};
+
+BOOST_FUSION_BARRIER_END
}}}
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
@@ -67,6 +71,8 @@ namespace boost { namespace fusion { namespace detail
namespace boost { namespace fusion { namespace detail
{
+BOOST_FUSION_BARRIER_BEGIN
+
#define BOOST_FUSION_NEXT_ITERATOR(z, n, data) \
typedef typename fusion::result_of::next<BOOST_PP_CAT(I, n)>::type \
BOOST_PP_CAT(I, BOOST_PP_INC(n));
@@ -87,6 +93,7 @@ namespace boost { namespace fusion { namespace detail
#undef BOOST_FUSION_NEXT_CALL_ITERATOR
#undef BOOST_FUSION_VALUE_OF_ITERATOR
+BOOST_FUSION_BARRIER_END
}}}
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
@@ -117,7 +124,7 @@ namespace boost { namespace fusion { namespace detail
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
diff --git a/boost/fusion/container/deque/detail/cpp03/build_deque.hpp b/boost/fusion/container/deque/detail/cpp03/build_deque.hpp
index 74d37fa..99cbe58 100644
--- a/boost/fusion/container/deque/detail/cpp03/build_deque.hpp
+++ b/boost/fusion/container/deque/detail/cpp03/build_deque.hpp
@@ -33,7 +33,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::as_deque<Sequence>::type
as_deque(Sequence& seq)
{
@@ -42,7 +42,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline typename result_of::as_deque<Sequence const>::type
as_deque(Sequence const& seq)
{
diff --git a/boost/fusion/container/deque/detail/cpp03/deque.hpp b/boost/fusion/container/deque/detail/cpp03/deque.hpp
index 2dd7f63..7c9417e 100644
--- a/boost/fusion/container/deque/detail/cpp03/deque.hpp
+++ b/boost/fusion/container/deque/detail/cpp03/deque.hpp
@@ -18,12 +18,11 @@
#include <boost/fusion/container/deque/detail/cpp03/deque_keyed_values.hpp>
#include <boost/fusion/container/deque/detail/cpp03/deque_initial_size.hpp>
#include <boost/fusion/support/sequence_base.hpp>
+#include <boost/fusion/support/detail/access.hpp>
#include <boost/fusion/container/deque/detail/keyed_element.hpp>
#include <boost/preprocessor/repetition/enum_params.hpp>
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
-#include <boost/type_traits/add_reference.hpp>
-#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/is_convertible.hpp>
#include <boost/fusion/container/deque/deque_fwd.hpp>
@@ -35,7 +34,6 @@
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/mpl/bool.hpp>
-#include <boost/fusion/support/sequence_base.hpp>
#include <boost/fusion/support/void.hpp>
#include <boost/utility/enable_if.hpp>
@@ -76,40 +74,39 @@ namespace boost { namespace fusion {
typedef typename detail::deque_keyed_values<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, T)>::type base;
typedef typename detail::deque_initial_size<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, T)>::type size;
typedef mpl::int_<size::value> next_up;
- typedef mpl::int_<
- mpl::if_<mpl::equal_to<size, mpl::int_<0> >, mpl::int_<0>, mpl::int_<-1> >::type::value> next_down;
+ typedef mpl::int_<-1> next_down;
typedef mpl::false_ is_view;
#include <boost/fusion/container/deque/detail/cpp03/deque_forward_ctor.hpp>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque()
{}
- BOOST_FUSION_GPU_ENABLED
- explicit deque(typename add_reference<typename add_const<T0>::type>::type t0)
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ explicit deque(typename detail::call_param<T0>::type t0)
: base(t0, detail::nil_keyed_element())
{}
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit deque(deque const& rhs)
: base(rhs)
{}
template<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, typename U)>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)> const& seq)
: base(seq)
{}
template<typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(Sequence const& seq, typename disable_if<is_convertible<Sequence, T0> >::type* /*dummy*/ = 0)
: base(base::from_iterator(fusion::begin(seq)))
{}
template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, typename U)>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque&
operator=(deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)> const& rhs)
{
@@ -118,7 +115,7 @@ namespace boost { namespace fusion {
}
template <typename T>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque&
operator=(T const& rhs)
{
@@ -132,27 +129,30 @@ FUSION_HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
(defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES))
template <typename T0_>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit deque(T0_&& t0
, typename enable_if<is_convertible<T0_, T0> >::type* /*dummy*/ = 0
)
- : base(std::forward<T0_>(t0), detail::nil_keyed_element())
+ : base(BOOST_FUSION_FWD_ELEM(T0_, t0), detail::nil_keyed_element())
{}
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit deque(deque&& rhs)
: base(std::forward<deque>(rhs))
{}
template<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, typename U)>
- BOOST_FUSION_GPU_ENABLED
- deque(deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)>&& seq)
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ deque(deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)>&& seq
+ , typename disable_if<
+ is_convertible<deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)>, T0>
+ >::type* /*dummy*/ = 0)
: base(std::forward<deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)>>(seq))
{}
template <typename T>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque&
operator=(T&& rhs)
{
- base::operator=(std::forward<T>(rhs));
+ base::operator=(BOOST_FUSION_FWD_ELEM(T, rhs));
return *this;
}
#endif
@@ -169,20 +169,20 @@ FUSION_HASH endif
typedef bidirectional_traversal_tag category;
typedef mpl::int_<0> size;
typedef mpl::int_<0> next_up;
- typedef mpl::int_<0> next_down;
+ typedef mpl::int_<-1> next_down;
typedef mpl::false_ is_view;
template <typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(Sequence const&,
typename enable_if<
mpl::and_<
traits::is_sequence<Sequence>
- , result_of::empty<Sequence> > >::type* /*dummy*/ = 0)
+ , result_of::empty<Sequence> > >::type* /*dummy*/ = 0) BOOST_NOEXCEPT
{}
- BOOST_FUSION_GPU_ENABLED
- deque() {}
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ deque() BOOST_NOEXCEPT {}
};
}}
diff --git a/boost/fusion/container/deque/detail/cpp03/deque_forward_ctor.hpp b/boost/fusion/container/deque/detail/cpp03/deque_forward_ctor.hpp
index 7b12d58..eeaa29f 100644
--- a/boost/fusion/container/deque/detail/cpp03/deque_forward_ctor.hpp
+++ b/boost/fusion/container/deque/detail/cpp03/deque_forward_ctor.hpp
@@ -13,7 +13,7 @@
#error "C++03 only! This file should not have been included"
#endif
-#define FUSION_DEQUE_FORWARD_CTOR_FORWARD(z, n, _) std::forward<T_##n>(t##n)
+#define FUSION_DEQUE_FORWARD_CTOR_FORWARD(z, n, _) BOOST_FUSION_FWD_ELEM(T_##n, t##n)
#include <boost/preprocessor/iterate.hpp>
#include <boost/preprocessor/repetition/enum_shifted_params.hpp>
@@ -35,8 +35,8 @@ FUSION_HASH if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
#endif
#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
(defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES))
-BOOST_FUSION_GPU_ENABLED
-deque(BOOST_PP_ENUM_BINARY_PARAMS(N, typename add_reference<typename add_const<T, >::type>::type t))
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(BOOST_PP_ENUM_BINARY_PARAMS(N, typename detail::call_param<T, >::type t))
: base(detail::deque_keyed_values<BOOST_PP_ENUM_PARAMS(N, T)>::construct(BOOST_PP_ENUM_PARAMS(N, t)))
{}
#endif
@@ -49,13 +49,13 @@ FUSION_HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
#endif
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
(defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES))
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(BOOST_PP_ENUM_BINARY_PARAMS(N, T, const& t))
: base(detail::deque_keyed_values<BOOST_PP_ENUM_PARAMS(N, T)>::construct(BOOST_PP_ENUM_PARAMS(N, t)))
{}
template <BOOST_PP_ENUM_PARAMS(N, typename T_)>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(BOOST_PP_ENUM_BINARY_PARAMS(N, T_, && t))
: base(detail::deque_keyed_values<BOOST_PP_ENUM_PARAMS(N, T)>::
forward_(BOOST_PP_ENUM(N, FUSION_DEQUE_FORWARD_CTOR_FORWARD, _)))
diff --git a/boost/fusion/container/deque/detail/cpp03/deque_keyed_values.hpp b/boost/fusion/container/deque/detail/cpp03/deque_keyed_values.hpp
index 1ee91ba..21b4934 100644
--- a/boost/fusion/container/deque/detail/cpp03/deque_keyed_values.hpp
+++ b/boost/fusion/container/deque/detail/cpp03/deque_keyed_values.hpp
@@ -68,13 +68,13 @@ namespace boost { namespace fusion { namespace detail
{
typedef nil_keyed_element type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type construct()
{
return type();
}
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type forward_()
{
return type();
diff --git a/boost/fusion/container/deque/detail/cpp03/deque_keyed_values_call.hpp b/boost/fusion/container/deque/detail/cpp03/deque_keyed_values_call.hpp
index dcd9257..87f3714 100644
--- a/boost/fusion/container/deque/detail/cpp03/deque_keyed_values_call.hpp
+++ b/boost/fusion/container/deque/detail/cpp03/deque_keyed_values_call.hpp
@@ -20,7 +20,7 @@
#define FUSION_HASH #
#define FUSION_DEQUE_KEYED_VALUES_FORWARD(z, n, _) \
- std::forward<BOOST_PP_CAT(T_, n)>(BOOST_PP_CAT(t, n))
+ BOOST_FUSION_FWD_ELEM(BOOST_PP_CAT(T_, n), BOOST_PP_CAT(t, n))
#define BOOST_PP_FILENAME_1 \
<boost/fusion/container/deque/detail/cpp03/deque_keyed_values_call.hpp>
@@ -34,8 +34,8 @@
#define N BOOST_PP_ITERATION()
- BOOST_FUSION_GPU_ENABLED
- static type construct(BOOST_PP_ENUM_BINARY_PARAMS(N, typename add_reference<typename add_const<T, >::type>::type t))
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static type construct(BOOST_PP_ENUM_BINARY_PARAMS(N, typename detail::call_param<T, >::type t))
{
return type(t0,
deque_keyed_values_impl<
@@ -52,10 +52,10 @@ FUSION_HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
(defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES))
template <BOOST_PP_ENUM_PARAMS(N, typename T_)>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type forward_(BOOST_PP_ENUM_BINARY_PARAMS(N, T_, && t))
{
- return type(std::forward<T_0>(t0),
+ return type(BOOST_FUSION_FWD_ELEM(T_0, t0),
deque_keyed_values_impl<
next_index
#if N > 1
diff --git a/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque10.hpp b/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque10.hpp
index e573efb..3faf4be 100644
--- a/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque10.hpp
+++ b/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque10.hpp
@@ -8,6 +8,7 @@
==============================================================================*/
namespace boost { namespace fusion { namespace detail
{
+BOOST_FUSION_BARRIER_BEGIN
template <>
struct as_deque<1>
{
@@ -19,7 +20,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -40,7 +41,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -61,7 +62,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -82,7 +83,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -103,7 +104,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -124,7 +125,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -145,7 +146,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -166,7 +167,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -187,7 +188,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -208,7 +209,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -218,4 +219,5 @@ namespace boost { namespace fusion { namespace detail
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9);
}
};
+BOOST_FUSION_BARRIER_END
}}}
diff --git a/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque20.hpp b/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque20.hpp
index b3b7f15..81faaa0 100644
--- a/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque20.hpp
+++ b/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque20.hpp
@@ -8,6 +8,7 @@
==============================================================================*/
namespace boost { namespace fusion { namespace detail
{
+BOOST_FUSION_BARRIER_BEGIN
template <>
struct as_deque<1>
{
@@ -19,7 +20,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -40,7 +41,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -61,7 +62,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -82,7 +83,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -103,7 +104,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -124,7 +125,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -145,7 +146,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -166,7 +167,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -187,7 +188,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -208,7 +209,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -229,7 +230,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -250,7 +251,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -271,7 +272,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -292,7 +293,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -313,7 +314,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -334,7 +335,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -355,7 +356,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -376,7 +377,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -397,7 +398,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -418,7 +419,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -428,4 +429,5 @@ namespace boost { namespace fusion { namespace detail
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19);
}
};
+BOOST_FUSION_BARRIER_END
}}}
diff --git a/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque30.hpp b/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque30.hpp
index 18b4662..ce2b7b0 100644
--- a/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque30.hpp
+++ b/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque30.hpp
@@ -8,6 +8,7 @@
==============================================================================*/
namespace boost { namespace fusion { namespace detail
{
+BOOST_FUSION_BARRIER_BEGIN
template <>
struct as_deque<1>
{
@@ -19,7 +20,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -40,7 +41,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -61,7 +62,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -82,7 +83,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -103,7 +104,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -124,7 +125,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -145,7 +146,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -166,7 +167,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -187,7 +188,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -208,7 +209,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -229,7 +230,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -250,7 +251,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -271,7 +272,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -292,7 +293,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -313,7 +314,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -334,7 +335,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -355,7 +356,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -376,7 +377,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -397,7 +398,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -418,7 +419,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -439,7 +440,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -460,7 +461,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -481,7 +482,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -502,7 +503,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -523,7 +524,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -544,7 +545,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -565,7 +566,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -586,7 +587,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -607,7 +608,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -628,7 +629,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -638,4 +639,5 @@ namespace boost { namespace fusion { namespace detail
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29);
}
};
+BOOST_FUSION_BARRIER_END
}}}
diff --git a/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque40.hpp b/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque40.hpp
index ec44a2b..41a5cd0 100644
--- a/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque40.hpp
+++ b/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque40.hpp
@@ -8,6 +8,7 @@
==============================================================================*/
namespace boost { namespace fusion { namespace detail
{
+BOOST_FUSION_BARRIER_BEGIN
template <>
struct as_deque<1>
{
@@ -19,7 +20,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -40,7 +41,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -61,7 +62,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -82,7 +83,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -103,7 +104,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -124,7 +125,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -145,7 +146,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -166,7 +167,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -187,7 +188,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -208,7 +209,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -229,7 +230,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -250,7 +251,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -271,7 +272,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -292,7 +293,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -313,7 +314,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -334,7 +335,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -355,7 +356,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -376,7 +377,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -397,7 +398,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -418,7 +419,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -439,7 +440,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -460,7 +461,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -481,7 +482,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -502,7 +503,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -523,7 +524,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -544,7 +545,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -565,7 +566,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -586,7 +587,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -607,7 +608,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -628,7 +629,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -649,7 +650,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -670,7 +671,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -691,7 +692,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -712,7 +713,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -733,7 +734,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -754,7 +755,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -775,7 +776,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -796,7 +797,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -817,7 +818,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -838,7 +839,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -848,4 +849,5 @@ namespace boost { namespace fusion { namespace detail
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39);
}
};
+BOOST_FUSION_BARRIER_END
}}}
diff --git a/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque50.hpp b/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque50.hpp
index 6c83aed..d93ba94 100644
--- a/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque50.hpp
+++ b/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque50.hpp
@@ -8,6 +8,7 @@
==============================================================================*/
namespace boost { namespace fusion { namespace detail
{
+BOOST_FUSION_BARRIER_BEGIN
template <>
struct as_deque<1>
{
@@ -19,7 +20,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -40,7 +41,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -61,7 +62,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -82,7 +83,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -103,7 +104,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -124,7 +125,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -145,7 +146,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -166,7 +167,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -187,7 +188,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -208,7 +209,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -229,7 +230,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -250,7 +251,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -271,7 +272,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -292,7 +293,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -313,7 +314,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -334,7 +335,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -355,7 +356,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -376,7 +377,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -397,7 +398,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -418,7 +419,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -439,7 +440,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -460,7 +461,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -481,7 +482,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -502,7 +503,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -523,7 +524,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -544,7 +545,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -565,7 +566,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -586,7 +587,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -607,7 +608,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -628,7 +629,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -649,7 +650,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -670,7 +671,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -691,7 +692,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -712,7 +713,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -733,7 +734,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -754,7 +755,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -775,7 +776,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -796,7 +797,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -817,7 +818,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -838,7 +839,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -859,7 +860,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -880,7 +881,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -901,7 +902,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -922,7 +923,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -943,7 +944,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -964,7 +965,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -985,7 +986,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -1006,7 +1007,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -1027,7 +1028,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -1048,7 +1049,7 @@ namespace boost { namespace fusion { namespace detail
typedef deque<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> type;
};
template <typename Iterator>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static typename apply<Iterator>::type
call(Iterator const& i0)
{
@@ -1058,4 +1059,5 @@ namespace boost { namespace fusion { namespace detail
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48 , *i49);
}
};
+BOOST_FUSION_BARRIER_END
}}}
diff --git a/boost/fusion/container/deque/detail/cpp03/preprocessed/deque10.hpp b/boost/fusion/container/deque/detail/cpp03/preprocessed/deque10.hpp
index 59a4ca6..7f71696 100644
--- a/boost/fusion/container/deque/detail/cpp03/preprocessed/deque10.hpp
+++ b/boost/fusion/container/deque/detail/cpp03/preprocessed/deque10.hpp
@@ -19,194 +19,193 @@ namespace boost { namespace fusion {
typedef typename detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::type base;
typedef typename detail::deque_initial_size<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::type size;
typedef mpl::int_<size::value> next_up;
- typedef mpl::int_<
- mpl::if_<mpl::equal_to<size, mpl::int_<0> >, mpl::int_<0>, mpl::int_<-1> >::type::value> next_down;
+ typedef mpl::int_<-1> next_down;
typedef mpl::false_ is_view;
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1)
: base(detail::deque_keyed_values<T0 , T1>::construct(t0 , t1))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1)
: base(detail::deque_keyed_values<T0 , T1>::construct(t0 , t1))
{}
template <typename T_0 , typename T_1>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1)
: base(detail::deque_keyed_values<T0 , T1>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1)))
{}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2)
: base(detail::deque_keyed_values<T0 , T1 , T2>::construct(t0 , t1 , t2))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1 , T2 const& t2)
: base(detail::deque_keyed_values<T0 , T1 , T2>::construct(t0 , t1 , t2))
{}
template <typename T_0 , typename T_1 , typename T_2>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1 , T_2 && t2)
: base(detail::deque_keyed_values<T0 , T1 , T2>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1) , std::forward<T_2>(t2)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2)))
{}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3>::construct(t0 , t1 , t2 , t3))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3>::construct(t0 , t1 , t2 , t3))
{}
template <typename T_0 , typename T_1 , typename T_2 , typename T_3>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1) , std::forward<T_2>(t2) , std::forward<T_3>(t3)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3)))
{}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4>::construct(t0 , t1 , t2 , t3 , t4))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4>::construct(t0 , t1 , t2 , t3 , t4))
{}
template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1) , std::forward<T_2>(t2) , std::forward<T_3>(t3) , std::forward<T_4>(t4)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4)))
{}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4 , typename add_reference<typename add_const<T5 >::type>::type t5)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5>::construct(t0 , t1 , t2 , t3 , t4 , t5))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5>::construct(t0 , t1 , t2 , t3 , t4 , t5))
{}
template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1) , std::forward<T_2>(t2) , std::forward<T_3>(t3) , std::forward<T_4>(t4) , std::forward<T_5>(t5)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5)))
{}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4 , typename add_reference<typename add_const<T5 >::type>::type t5 , typename add_reference<typename add_const<T6 >::type>::type t6)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6))
{}
template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1) , std::forward<T_2>(t2) , std::forward<T_3>(t3) , std::forward<T_4>(t4) , std::forward<T_5>(t5) , std::forward<T_6>(t6)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6)))
{}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4 , typename add_reference<typename add_const<T5 >::type>::type t5 , typename add_reference<typename add_const<T6 >::type>::type t6 , typename add_reference<typename add_const<T7 >::type>::type t7)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6 , typename detail::call_param<T7 >::type t7)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7))
{}
template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6 , typename T_7>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1) , std::forward<T_2>(t2) , std::forward<T_3>(t3) , std::forward<T_4>(t4) , std::forward<T_5>(t5) , std::forward<T_6>(t6) , std::forward<T_7>(t7)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6) , std::forward<T_7>( t7)))
{}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4 , typename add_reference<typename add_const<T5 >::type>::type t5 , typename add_reference<typename add_const<T6 >::type>::type t6 , typename add_reference<typename add_const<T7 >::type>::type t7 , typename add_reference<typename add_const<T8 >::type>::type t8)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6 , typename detail::call_param<T7 >::type t7 , typename detail::call_param<T8 >::type t8)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8))
{}
template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6 , typename T_7 , typename T_8>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1) , std::forward<T_2>(t2) , std::forward<T_3>(t3) , std::forward<T_4>(t4) , std::forward<T_5>(t5) , std::forward<T_6>(t6) , std::forward<T_7>(t7) , std::forward<T_8>(t8)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6) , std::forward<T_7>( t7) , std::forward<T_8>( t8)))
{}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4 , typename add_reference<typename add_const<T5 >::type>::type t5 , typename add_reference<typename add_const<T6 >::type>::type t6 , typename add_reference<typename add_const<T7 >::type>::type t7 , typename add_reference<typename add_const<T8 >::type>::type t8 , typename add_reference<typename add_const<T9 >::type>::type t9)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6 , typename detail::call_param<T7 >::type t7 , typename detail::call_param<T8 >::type t8 , typename detail::call_param<T9 >::type t9)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9))
{}
template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6 , typename T_7 , typename T_8 , typename T_9>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1) , std::forward<T_2>(t2) , std::forward<T_3>(t3) , std::forward<T_4>(t4) , std::forward<T_5>(t5) , std::forward<T_6>(t6) , std::forward<T_7>(t7) , std::forward<T_8>(t8) , std::forward<T_9>(t9)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6) , std::forward<T_7>( t7) , std::forward<T_8>( t8) , std::forward<T_9>( t9)))
{}
# endif
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque()
{}
- BOOST_FUSION_GPU_ENABLED
- explicit deque(typename add_reference<typename add_const<T0>::type>::type t0)
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ explicit deque(typename detail::call_param<T0>::type t0)
: base(t0, detail::nil_keyed_element())
{}
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit deque(deque const& rhs)
: base(rhs)
{}
template<typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& seq)
: base(seq)
{}
template<typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(Sequence const& seq, typename disable_if<is_convertible<Sequence, T0> >::type* = 0)
: base(base::from_iterator(fusion::begin(seq)))
{}
template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque&
operator=(deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
{
@@ -214,7 +213,7 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
return *this;
}
template <typename T>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque&
operator=(T const& rhs)
{
@@ -223,27 +222,30 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
}
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
template <typename T0_>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit deque(T0_&& t0
, typename enable_if<is_convertible<T0_, T0> >::type* = 0
)
- : base(std::forward<T0_>(t0), detail::nil_keyed_element())
+ : base(std::forward<T0_>( t0), detail::nil_keyed_element())
{}
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit deque(deque&& rhs)
: base(std::forward<deque>(rhs))
{}
template<typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
- BOOST_FUSION_GPU_ENABLED
- deque(deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9>&& seq)
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ deque(deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9>&& seq
+ , typename disable_if<
+ is_convertible<deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9>, T0>
+ >::type* = 0)
: base(std::forward<deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9>>(seq))
{}
template <typename T>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque&
operator=(T&& rhs)
{
- base::operator=(std::forward<T>(rhs));
+ base::operator=(std::forward<T>( rhs));
return *this;
}
# endif
@@ -255,17 +257,17 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
typedef bidirectional_traversal_tag category;
typedef mpl::int_<0> size;
typedef mpl::int_<0> next_up;
- typedef mpl::int_<0> next_down;
+ typedef mpl::int_<-1> next_down;
typedef mpl::false_ is_view;
template <typename Sequence>
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(Sequence const&,
typename enable_if<
mpl::and_<
traits::is_sequence<Sequence>
- , result_of::empty<Sequence> > >::type* = 0)
+ , result_of::empty<Sequence> > >::type* = 0) BOOST_NOEXCEPT
{}
- BOOST_FUSION_GPU_ENABLED
- deque() {}
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ deque() BOOST_NOEXCEPT {}
};
}}
diff --git a/boost/fusion/container/deque/detail/cpp03/preprocessed/deque20.hpp b/boost/fusion/container/deque/detail/cpp03/preprocessed/deque20.hpp
index ca008a7..949b2a4 100644
--- a/boost/fusion/container/deque/detail/cpp03/preprocessed/deque20.hpp
+++ b/boost/fusion/container/deque/detail/cpp03/preprocessed/deque20.hpp
@@ -19,374 +19,373 @@ namespace boost { namespace fusion {
typedef typename detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19>::type base;
typedef typename detail::deque_initial_size<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19>::type size;
typedef mpl::int_<size::value> next_up;
- typedef mpl::int_<
- mpl::if_<mpl::equal_to<size, mpl::int_<0> >, mpl::int_<0>, mpl::int_<-1> >::type::value> next_down;
+ typedef mpl::int_<-1> next_down;
typedef mpl::false_ is_view;
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1)
: base(detail::deque_keyed_values<T0 , T1>::construct(t0 , t1))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1)
: base(detail::deque_keyed_values<T0 , T1>::construct(t0 , t1))
{}
template <typename T_0 , typename T_1>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1)
: base(detail::deque_keyed_values<T0 , T1>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1)))
{}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2)
: base(detail::deque_keyed_values<T0 , T1 , T2>::construct(t0 , t1 , t2))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1 , T2 const& t2)
: base(detail::deque_keyed_values<T0 , T1 , T2>::construct(t0 , t1 , t2))
{}
template <typename T_0 , typename T_1 , typename T_2>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1 , T_2 && t2)
: base(detail::deque_keyed_values<T0 , T1 , T2>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1) , std::forward<T_2>(t2)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2)))
{}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3>::construct(t0 , t1 , t2 , t3))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3>::construct(t0 , t1 , t2 , t3))
{}
template <typename T_0 , typename T_1 , typename T_2 , typename T_3>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1) , std::forward<T_2>(t2) , std::forward<T_3>(t3)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3)))
{}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4>::construct(t0 , t1 , t2 , t3 , t4))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4>::construct(t0 , t1 , t2 , t3 , t4))
{}
template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1) , std::forward<T_2>(t2) , std::forward<T_3>(t3) , std::forward<T_4>(t4)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4)))
{}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4 , typename add_reference<typename add_const<T5 >::type>::type t5)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5>::construct(t0 , t1 , t2 , t3 , t4 , t5))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5>::construct(t0 , t1 , t2 , t3 , t4 , t5))
{}
template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1) , std::forward<T_2>(t2) , std::forward<T_3>(t3) , std::forward<T_4>(t4) , std::forward<T_5>(t5)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5)))
{}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4 , typename add_reference<typename add_const<T5 >::type>::type t5 , typename add_reference<typename add_const<T6 >::type>::type t6)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6))
{}
template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1) , std::forward<T_2>(t2) , std::forward<T_3>(t3) , std::forward<T_4>(t4) , std::forward<T_5>(t5) , std::forward<T_6>(t6)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6)))
{}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4 , typename add_reference<typename add_const<T5 >::type>::type t5 , typename add_reference<typename add_const<T6 >::type>::type t6 , typename add_reference<typename add_const<T7 >::type>::type t7)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6 , typename detail::call_param<T7 >::type t7)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7))
{}
template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6 , typename T_7>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1) , std::forward<T_2>(t2) , std::forward<T_3>(t3) , std::forward<T_4>(t4) , std::forward<T_5>(t5) , std::forward<T_6>(t6) , std::forward<T_7>(t7)))
+ forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6) , std::forward<T_7>( t7)))
{}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
-deque(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4 , typename add_reference<typename add_const<T5 >::type>::type t5 , typename add_reference<typename add_const<T6 >::type>::type t6 , typename add_reference<typename add_const<T7 >::type>::type t7 , typename add_reference<typename add_const<T8 >::type>::type t8)
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6 , typename detail::call_param<T7 >::type t7 , typename detail::call_param<T8 >::type t8)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8))
{}
# endif
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-BOOST_FUSION_GPU_ENABLED
+BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8))
{}
template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6 , typename T_7 , typename T_8>
-BOOST_FUSION_GPU_ENABLED
+BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8)
: base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8>::
- forward_(std::forward<T_0>(t0) , std::forward<T_1>(t1) , std::forward<T_2>(t2) , std::forward<T_3>(t3) , std::forward<T_4>(t4) , std::forward<T_5>(t5) , std::forward<T_6>(t6) , std::forward<