Merge pull request #147 from boostorg/develop

Develop to Master
This commit is contained in:
Kohei Takahashi
2017-06-19 23:43:44 +09:00
committed by GitHub
10 changed files with 262 additions and 291 deletions

View File

@ -23,8 +23,7 @@
# endif # endif
#endif #endif
// MSVC variadics at this point in time is not ready yet (ICE!) #if BOOST_WORKAROUND(BOOST_MSVC, < 1910)
#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1900))
# if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) # if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE)
# undef BOOST_FUSION_HAS_VARIADIC_DEQUE # undef BOOST_FUSION_HAS_VARIADIC_DEQUE
# endif # endif

View File

@ -23,8 +23,7 @@
# endif # endif
#endif #endif
// MSVC variadics at this point in time is not ready yet (ICE!) #if BOOST_WORKAROUND(BOOST_MSVC, < 1910)
#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1900))
# if defined(BOOST_FUSION_HAS_VARIADIC_MAP) # if defined(BOOST_FUSION_HAS_VARIADIC_MAP)
# undef BOOST_FUSION_HAS_VARIADIC_MAP # undef BOOST_FUSION_HAS_VARIADIC_MAP
# endif # endif

View File

@ -27,8 +27,7 @@
# endif # endif
#endif #endif
// Sometimes, MSVC 12 shows compile error with std::size_t of template parameter. #if BOOST_WORKAROUND(BOOST_MSVC, < 1910)
#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1800))
# if defined(BOOST_FUSION_HAS_VARIADIC_VECTOR) # if defined(BOOST_FUSION_HAS_VARIADIC_VECTOR)
# undef BOOST_FUSION_HAS_VARIADIC_VECTOR # undef BOOST_FUSION_HAS_VARIADIC_VECTOR
# endif # endif

View File

@ -1,13 +1,13 @@
/*============================================================================= /*=============================================================================
Copyright (c) 2001-2009 Joel de Guzman Copyright (c) 2017 Kohei Takahashi
Distributed under the Boost Software License, Version 1.0. (See accompanying 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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_INCLUDE_ADAPT_ADT_NAMED) #if !defined(FUSION_INCLUDE_STD_ARRAY)
#define FUSION_INCLUDE_ADAPT_ADT_NAMED #define FUSION_INCLUDE_STD_ARRAY
#include <boost/fusion/support/config.hpp> #include <boost/fusion/support/config.hpp>
#include <boost/fusion/adapted/adt/adapt_adt_named.hpp> #include <boost/fusion/adapted/std_array.hpp>
#endif #endif

View File

@ -1,6 +1,7 @@
##============================================================================== ##==============================================================================
# Copyright (c) 2003-2006 Joel de Guzman # Copyright (c) 2003-2006 Joel de Guzman
# Copyright (c) 2013 Mateusz Loskot # Copyright (c) 2013 Mateusz Loskot
# Copyright (c) 2014-2017 Kohei Takahashi
# #
# Use, modification and distribution is subject to the Boost Software # Use, modification and distribution is subject to the Boost Software
# License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@ -8,6 +9,7 @@
#============================================================================== #==============================================================================
# bring in rules for testing # bring in rules for testing
import testing ; import testing ;
import ../../config/checks/config : requires ;
project project
: requirements : requirements
@ -16,246 +18,234 @@ project
{ {
test-suite fusion : test-suite fusion :
[ run algorithm/all.cpp : : : : ] [ run algorithm/all.cpp ]
[ run algorithm/any.cpp : : : : ] [ run algorithm/any.cpp ]
[ run algorithm/clear.cpp : : : : ] [ run algorithm/clear.cpp ]
[ run algorithm/copy.cpp : : : : ] [ run algorithm/copy.cpp ]
[ run algorithm/count.cpp : : : : ] [ run algorithm/count.cpp ]
[ run algorithm/count_if.cpp : : : : ] [ run algorithm/count_if.cpp ]
[ run algorithm/erase.cpp : : : : ] [ run algorithm/erase.cpp ]
[ run algorithm/erase_key.cpp : : : : ] [ run algorithm/erase_key.cpp ]
[ run algorithm/filter.cpp : : : : ] [ run algorithm/filter.cpp ]
[ run algorithm/filter_if.cpp : : : : ] [ run algorithm/filter_if.cpp ]
[ run algorithm/find.cpp : : : : ] [ run algorithm/find.cpp ]
[ run algorithm/find_if.cpp : : : : ] [ run algorithm/find_if.cpp ]
[ run algorithm/fold.cpp : : : : ] [ run algorithm/fold.cpp ]
[ run algorithm/for_each.cpp : : : : ] [ run algorithm/for_each.cpp ]
[ run algorithm/insert.cpp : : : : ] [ run algorithm/insert.cpp ]
[ run algorithm/insert_range.cpp : : : : ] [ run algorithm/insert_range.cpp ]
[ run algorithm/iter_fold.cpp : : : : ] [ run algorithm/iter_fold.cpp ]
[ run algorithm/move.cpp : : : : ] [ run algorithm/move.cpp ]
[ run algorithm/none.cpp : : : : ] [ run algorithm/none.cpp ]
[ run algorithm/pop_back.cpp : : : : ] [ run algorithm/pop_back.cpp ]
[ run algorithm/pop_front.cpp : : : : ] [ run algorithm/pop_front.cpp ]
[ run algorithm/push_back.cpp : : : : ] [ run algorithm/push_back.cpp ]
[ run algorithm/push_front.cpp : : : : ] [ run algorithm/push_front.cpp ]
[ run algorithm/remove.cpp : : : : ] [ run algorithm/remove.cpp ]
[ run algorithm/remove_if.cpp : : : : ] [ run algorithm/remove_if.cpp ]
[ run algorithm/replace.cpp : : : : ] [ run algorithm/replace.cpp ]
[ run algorithm/replace_if.cpp : : : : ] [ run algorithm/replace_if.cpp ]
[ run algorithm/reverse_fold.cpp : : : : ] [ run algorithm/reverse_fold.cpp ]
[ run algorithm/reverse_iter_fold.cpp : : : : ] [ run algorithm/reverse_iter_fold.cpp ]
[ run algorithm/reverse.cpp : : : : ] [ run algorithm/reverse.cpp ]
[ run algorithm/segmented_for_each.cpp : : : : ] [ run algorithm/segmented_for_each.cpp ]
[ run algorithm/segmented_find.cpp : : : : ] [ run algorithm/segmented_find.cpp ]
[ run algorithm/segmented_find_if.cpp : : : : ] [ run algorithm/segmented_find_if.cpp ]
[ run algorithm/segmented_fold.cpp : : : : ] [ run algorithm/segmented_fold.cpp ]
[ run algorithm/transform.cpp : : : : ] [ run algorithm/transform.cpp ]
[ run algorithm/join.cpp : : : : ] [ run algorithm/join.cpp ]
[ run algorithm/zip.cpp : : : : ] [ run algorithm/zip.cpp ]
[ run algorithm/zip2.cpp : : : : ] [ run algorithm/zip2.cpp ]
[ run algorithm/zip_ignore.cpp : : : : ] [ run algorithm/zip_ignore.cpp ]
[ run algorithm/flatten.cpp : : : : ] [ run algorithm/flatten.cpp ]
[ run sequence/as_deque.cpp : : : : ] [ run sequence/as_deque.cpp ]
[ run sequence/as_list.cpp : : : : ] [ run sequence/as_list.cpp ]
[ run sequence/as_map.cpp : : : : ] [ run sequence/as_map.cpp ]
[ run sequence/as_map_assoc.cpp : : : : ] [ run sequence/as_map_assoc.cpp ]
[ run sequence/as_set.cpp : : : : ] [ run sequence/as_set.cpp ]
[ run sequence/as_vector.cpp : : : : ] [ run sequence/as_vector.cpp ]
[ run sequence/boost_tuple.cpp : : : : ] [ run sequence/boost_tuple.cpp ]
[ run sequence/boost_tuple_iterator.cpp : : : : ] [ run sequence/boost_tuple_iterator.cpp ]
[ run sequence/cons.cpp : : : : ] [ run sequence/cons.cpp ]
[ run sequence/convert_boost_tuple.cpp : : : : ] [ run sequence/convert_boost_tuple.cpp ]
[ run sequence/convert_deque.cpp : : : : ] [ run sequence/convert_deque.cpp ]
[ run sequence/convert_list.cpp : : : : ] [ run sequence/convert_list.cpp ]
[ run sequence/convert_std_pair.cpp : : : : ] [ run sequence/convert_std_pair.cpp ]
[ run sequence/convert_std_tuple.cpp : : : : ] [ run sequence/convert_std_tuple.cpp : :
[ run sequence/convert_vector.cpp : : : : ] : [ requires cxx11_variadic_templates cxx11_hdr_tuple ] ]
[ run sequence/filter_view.cpp : : : : ] [ run sequence/convert_vector.cpp ]
[ run sequence/hash.cpp : : : : ] [ run sequence/filter_view.cpp ]
[ run sequence/io.cpp : : : : ] [ run sequence/hash.cpp ]
[ run sequence/iterator_range.cpp : : : : ] [ run sequence/io.cpp ]
[ run sequence/joint_view.cpp : : : : ] [ run sequence/iterator_range.cpp ]
[ run sequence/list_comparison.cpp : : : : ] [ run sequence/joint_view.cpp ]
[ run sequence/list_construction.cpp : : : : ] [ run sequence/list_comparison.cpp ]
[ run sequence/list_copy.cpp : : : : ] [ run sequence/list_construction.cpp ]
[ run sequence/list_iterator.cpp : : : : ] [ run sequence/list_copy.cpp ]
[ run sequence/list_hash.cpp : : : : ] [ run sequence/list_iterator.cpp ]
[ run sequence/list_make.cpp : : : : ] [ run sequence/list_hash.cpp ]
[ run sequence/list_misc.cpp : : : : ] [ run sequence/list_make.cpp ]
[ run sequence/list_mutate.cpp : : : : ] [ run sequence/list_misc.cpp ]
[ run sequence/list_nest.cpp : : : : ] [ run sequence/list_mutate.cpp ]
[ run sequence/list_tie.cpp : : : : ] [ run sequence/list_nest.cpp ]
[ run sequence/list_value_at.cpp : : : : ] [ run sequence/list_tie.cpp ]
[ run sequence/deque_comparison.cpp : : : : ] [ run sequence/list_value_at.cpp ]
[ run sequence/deque_construction.cpp : : : : ] [ run sequence/deque_comparison.cpp ]
[ run sequence/deque_copy.cpp : : : : ] [ run sequence/deque_construction.cpp ]
[ run sequence/deque_iterator.cpp : : : : ] [ run sequence/deque_copy.cpp ]
[ run sequence/deque_hash.cpp : : : : ] [ run sequence/deque_iterator.cpp ]
[ compile sequence/deque_is_constructible.cpp : : : : ] [ run sequence/deque_hash.cpp ]
[ run sequence/deque_make.cpp : : : : ] [ compile sequence/deque_is_constructible.cpp ]
[ run sequence/deque_misc.cpp : : : : ] [ run sequence/deque_make.cpp ]
[ run sequence/deque_move.cpp : : : : ] [ run sequence/deque_misc.cpp ]
[ run sequence/deque_mutate.cpp : : : : ] [ run sequence/deque_move.cpp ]
[ run sequence/deque_nest.cpp : : : : ] [ run sequence/deque_mutate.cpp ]
[ run sequence/deque_tie.cpp : : : : ] [ run sequence/deque_nest.cpp ]
[ run sequence/deque_value_at.cpp : : : : ] [ run sequence/deque_tie.cpp ]
[ run sequence/front_extended_deque.cpp : : : : ] [ run sequence/deque_value_at.cpp ]
[ run sequence/back_extended_deque.cpp : : : : ] [ run sequence/front_extended_deque.cpp ]
[ run sequence/make_list.cpp : : : : ] [ run sequence/back_extended_deque.cpp ]
[ run sequence/make_vector.cpp : : : : ] [ run sequence/make_list.cpp ]
[ run sequence/map.cpp : : : : ] [ run sequence/make_vector.cpp ]
[ run sequence/map_comparison.cpp : : : : ] [ run sequence/map.cpp ]
[ run sequence/map_construction.cpp : : : : ] [ run sequence/map_comparison.cpp ]
[ run sequence/map_copy.cpp : : : : ] [ run sequence/map_construction.cpp ]
[ run sequence/map_misc.cpp : : : : ] [ run sequence/map_copy.cpp ]
[ run sequence/map_move.cpp : : : : ] [ run sequence/map_misc.cpp ]
[ run sequence/map_mutate.cpp : : : : ] [ run sequence/map_move.cpp ]
[ run sequence/map_tie.cpp : : : : ] [ run sequence/map_mutate.cpp ]
[ run sequence/nil.cpp : : : : ] [ run sequence/map_tie.cpp ]
[ run sequence/nview.cpp : : : : ] [ run sequence/nil.cpp ]
[ run sequence/reverse_view.cpp : : : : ] [ run sequence/nview.cpp ]
[ run sequence/segmented_iterator_range.cpp : : : : ] [ run sequence/reverse_view.cpp ]
[ run sequence/set.cpp : : : : ] [ run sequence/segmented_iterator_range.cpp ]
[ run sequence/single_view.cpp : : : : ] [ run sequence/set.cpp ]
[ run sequence/std_pair.cpp : : : : ] [ run sequence/single_view.cpp ]
[ run sequence/boost_array.cpp : : : : ] [ run sequence/std_pair.cpp ]
[ run sequence/array.cpp : : : : ] [ run sequence/boost_array.cpp ]
[ run sequence/std_array.cpp : : : : ] [ run sequence/array.cpp ]
[ run sequence/tuple_comparison.cpp : : : : ] [ run sequence/std_array.cpp : :
[ run sequence/tuple_construction.cpp : : : : ] : [ requires cxx11_hdr_array ] ]
[ run sequence/tuple_conversion.cpp : : : : ] [ run sequence/tuple_comparison.cpp ]
[ run sequence/tuple_copy.cpp : : : : ] [ run sequence/tuple_construction.cpp ]
[ run sequence/tuple_element.cpp : : : : ] [ run sequence/tuple_conversion.cpp ]
[ run sequence/tuple_make.cpp : : : : ] [ run sequence/tuple_copy.cpp ]
[ run sequence/tuple_misc.cpp : : : : ] [ run sequence/tuple_element.cpp ]
[ run sequence/tuple_mutate.cpp : : : : ] [ run sequence/tuple_make.cpp ]
[ run sequence/tuple_nest.cpp : : : : ] [ run sequence/tuple_misc.cpp ]
[ run sequence/tuple_hash.cpp : : : : ] [ run sequence/tuple_mutate.cpp ]
[ run sequence/tuple_tie.cpp : : : : ] [ run sequence/tuple_nest.cpp ]
[ [ run sequence/tuple_hash.cpp ]
run sequence/tuple_traits.cpp [ run sequence/tuple_tie.cpp ]
: [ run sequence/tuple_traits.cpp : :
: :
: : tuple_traits__maybe_variadic ]
: sequence/tuple_traits/maybe_variadic_tuple [ run sequence/tuple_traits.cpp : :
] : <define>BOOST_FUSION_DISABLE_VARIADIC_VECTOR
[ : tuple_traits__no_variadic ]
run sequence/tuple_traits.cpp [ run sequence/transform_view.cpp ]
: [ run sequence/vector_comparison.cpp ]
: [ run sequence/vector_construction.cpp ]
: <define>BOOST_FUSION_DISABLE_VARIADIC_VECTOR [ run sequence/vector_conversion.cpp ]
: sequence/tuple_traits/no_variadic_tuple [ run sequence/vector_copy.cpp ]
] [ run sequence/vector_iterator.cpp ]
[ run sequence/transform_view.cpp : : : : ] [ run sequence/vector_make.cpp ]
[ run sequence/vector_comparison.cpp : : : : ] [ run sequence/vector_misc.cpp ]
[ run sequence/vector_construction.cpp : : : : ] [ run sequence/vector_move.cpp ]
[ run sequence/vector_conversion.cpp : : : : ] [ run sequence/vector_mutate.cpp ]
[ run sequence/vector_copy.cpp : : : : ] [ run sequence/vector_n.cpp ]
[ run sequence/vector_iterator.cpp : : : : ] [ run sequence/vector_nest.cpp ]
[ run sequence/vector_make.cpp : : : : ] [ run sequence/vector_hash.cpp ]
[ run sequence/vector_misc.cpp : : : : ] [ run sequence/vector_tie.cpp ]
[ run sequence/vector_move.cpp : : : : ] [ run sequence/vector_traits.cpp : :
[ run sequence/vector_mutate.cpp : : : : ] :
[ run sequence/vector_n.cpp : : : : ] : vector_traits__maybe_variadic ]
[ run sequence/vector_nest.cpp : : : : ] [ run sequence/vector_traits.cpp : :
[ run sequence/vector_hash.cpp : : : : ] : <define>BOOST_FUSION_DISABLE_VARIADIC_VECTOR
[ run sequence/vector_tie.cpp : : : : ] : vector_traits__no_variadic ]
[ [ run sequence/vector_value_at.cpp ]
run sequence/vector_traits.cpp [ run sequence/zip_view.cpp ]
: [ run sequence/zip_view2.cpp ]
: [ run sequence/zip_view_ignore.cpp ]
: [ run sequence/repetitive_view.cpp ]
: sequence/vector_traits/maybe_variadic_vector [ run sequence/deduce_sequence.cpp ]
] [ run sequence/adapt_adt_named.cpp ]
[ [ run sequence/adapt_adt_named_empty.cpp ]
run sequence/vector_traits.cpp [ run sequence/adapt_adt.cpp ]
: [ run sequence/adapt_adt_empty.cpp ]
: [ run sequence/adapt_assoc_adt_named.cpp ]
: <define>BOOST_FUSION_DISABLE_VARIADIC_VECTOR [ run sequence/adapt_assoc_adt_named_empty.cpp ]
: sequence/vector_traits/no_variadic_vector [ run sequence/adapt_assoc_adt.cpp ]
] [ run sequence/adapt_assoc_adt_empty.cpp ]
[ run sequence/vector_value_at.cpp : : : : ] [ run sequence/adapt_assoc_struct_named.cpp ]
[ run sequence/zip_view.cpp : : : : ] [ run sequence/adapt_assoc_struct_named_empty.cpp ]
[ run sequence/zip_view2.cpp : : : : ] [ run sequence/adapt_assoc_struct.cpp ]
[ run sequence/zip_view_ignore.cpp : : : : ] [ run sequence/adapt_assoc_struct_empty.cpp ]
[ run sequence/repetitive_view.cpp : : : : ] [ run sequence/adapt_assoc_tpl_adt.cpp ]
[ run sequence/deduce_sequence.cpp : : : : ] [ run sequence/adapt_assoc_tpl_adt_empty.cpp ]
[ run sequence/adapt_adt_named.cpp : : : : ] [ run sequence/adapt_assoc_tpl_struct.cpp ]
[ run sequence/adapt_adt_named_empty.cpp : : : : ] [ run sequence/adapt_assoc_tpl_struct_empty.cpp ]
[ run sequence/adapt_adt.cpp : : : : ] [ run sequence/adapt_struct_named.cpp ]
[ run sequence/adapt_adt_empty.cpp : : : : ] [ run sequence/adapt_struct_named_empty.cpp ]
[ run sequence/adapt_assoc_adt_named.cpp : : : : ] [ run sequence/adapt_struct.cpp ]
[ run sequence/adapt_assoc_adt_named_empty.cpp : : : : ] [ run sequence/adapt_struct_empty.cpp ]
[ run sequence/adapt_assoc_adt.cpp : : : : ] [ run sequence/adapt_tpl_adt.cpp ]
[ run sequence/adapt_assoc_adt_empty.cpp : : : : ] [ run sequence/adapt_tpl_adt_empty.cpp ]
[ run sequence/adapt_assoc_struct_named.cpp : : : : ] [ run sequence/adapt_tpl_struct.cpp ]
[ run sequence/adapt_assoc_struct_named_empty.cpp : : : : ] [ run sequence/adapt_tpl_struct_empty.cpp ]
[ run sequence/adapt_assoc_struct.cpp : : : : ] [ run sequence/adt_attribute_proxy.cpp ]
[ run sequence/adapt_assoc_struct_empty.cpp : : : : ] [ run sequence/define_struct.cpp ]
[ run sequence/adapt_assoc_tpl_adt.cpp : : : : ] [ run sequence/define_struct_empty.cpp ]
[ run sequence/adapt_assoc_tpl_adt_empty.cpp : : : : ] [ run sequence/define_struct_move.cpp ]
[ run sequence/adapt_assoc_tpl_struct.cpp : : : : ] [ run sequence/define_struct_inline.cpp ]
[ run sequence/adapt_assoc_tpl_struct_empty.cpp : : : : ] [ run sequence/define_struct_inline_empty.cpp ]
[ run sequence/adapt_struct_named.cpp : : : : ] [ run sequence/define_struct_inline_move.cpp ]
[ run sequence/adapt_struct_named_empty.cpp : : : : ] [ run sequence/define_assoc_struct.cpp ]
[ run sequence/adapt_struct.cpp : : : : ] [ run sequence/define_assoc_struct_empty.cpp ]
[ run sequence/adapt_struct_empty.cpp : : : : ] [ run sequence/define_assoc_struct_move.cpp ]
[ run sequence/adapt_tpl_adt.cpp : : : : ] [ run sequence/define_tpl_struct.cpp ]
[ run sequence/adapt_tpl_adt_empty.cpp : : : : ] [ run sequence/define_tpl_struct_empty.cpp ]
[ run sequence/adapt_tpl_struct.cpp : : : : ] [ run sequence/define_tpl_struct_move.cpp ]
[ run sequence/adapt_tpl_struct_empty.cpp : : : : ] [ run sequence/define_tpl_struct_inline.cpp ]
[ run sequence/adt_attribute_proxy.cpp : : : : ] [ run sequence/define_tpl_struct_inline_empty.cpp ]
[ run sequence/define_struct.cpp : : : : ] [ run sequence/define_tpl_struct_inline_move.cpp ]
[ run sequence/define_struct_empty.cpp : : : : ] [ run sequence/define_assoc_tpl_struct.cpp ]
[ run sequence/define_struct_move.cpp : : : : ] [ run sequence/define_assoc_tpl_struct_empty.cpp ]
[ run sequence/define_struct_inline.cpp : : : : ] [ run sequence/define_assoc_tpl_struct_move.cpp ]
[ run sequence/define_struct_inline_empty.cpp : : : : ] [ run sequence/std_tuple.cpp : :
[ run sequence/define_struct_inline_move.cpp : : : : ] : [ requires cxx11_variadic_templates cxx11_hdr_tuple ] ]
[ run sequence/define_assoc_struct.cpp : : : : ] [ run sequence/std_tuple_iterator.cpp : :
[ run sequence/define_assoc_struct_empty.cpp : : : : ] : [ requires cxx11_variadic_templates cxx11_hdr_tuple ] ]
[ run sequence/define_assoc_struct_move.cpp : : : : ] [ run sequence/ref_vector.cpp ]
[ run sequence/define_tpl_struct.cpp : : : : ] [ run sequence/flatten_view.cpp ]
[ run sequence/define_tpl_struct_empty.cpp : : : : ]
[ run sequence/define_tpl_struct_move.cpp : : : : ]
[ run sequence/define_tpl_struct_inline.cpp : : : : ]
[ run sequence/define_tpl_struct_inline_empty.cpp : : : : ]
[ run sequence/define_tpl_struct_inline_move.cpp : : : : ]
[ run sequence/define_assoc_tpl_struct.cpp : : : : ]
[ run sequence/define_assoc_tpl_struct_empty.cpp : : : : ]
[ run sequence/define_assoc_tpl_struct_move.cpp : : : : ]
[ run sequence/std_tuple.cpp : : : : ]
[ run sequence/std_tuple_iterator.cpp : : : : ]
[ run sequence/ref_vector.cpp : : : : ]
[ run sequence/flatten_view.cpp : : : : ]
[ compile sequence/size.cpp : : : : ] [ compile sequence/size.cpp ]
[ run functional/fused.cpp : : : : ] [ run functional/fused.cpp ]
[ run functional/fused_function_object.cpp : : : : ] [ run functional/fused_function_object.cpp ]
[ run functional/fused_procedure.cpp : : : : ] [ run functional/fused_procedure.cpp ]
[ run functional/unfused.cpp : : : : ] [ run functional/unfused.cpp ]
[ run functional/unfused_typed.cpp : : : : ] [ run functional/unfused_typed.cpp ]
[ run functional/make_fused.cpp : : : : ] [ run functional/make_fused.cpp ]
[ run functional/make_fused_function_object.cpp : : : : ] [ run functional/make_fused_function_object.cpp ]
[ run functional/make_fused_procedure.cpp : : : : ] [ run functional/make_fused_procedure.cpp ]
[ run functional/make_unfused.cpp : : : : ] [ run functional/make_unfused.cpp ]
[ run functional/invoke.cpp : : : : ] [ run functional/invoke.cpp ]
[ run functional/invoke_function_object.cpp : : : : ] [ run functional/invoke_function_object.cpp ]
[ run functional/invoke_procedure.cpp : : : : ] [ run functional/invoke_procedure.cpp ]
[ run sequence/swap.cpp : : : : ] [ run sequence/swap.cpp ]
[ compile support/pair_deque.cpp : : : : ] [ compile support/pair_deque.cpp ]
[ compile support/pair_list.cpp : : : : ] [ compile support/pair_list.cpp ]
[ compile support/pair_map.cpp : : : : ] [ compile support/pair_map.cpp ]
[ compile support/pair_set.cpp : : : : ] [ compile support/pair_set.cpp ]
[ compile support/pair_vector.cpp : : : : ] [ compile support/pair_vector.cpp ]
[ compile support/pair_nest.cpp : : : : ] [ compile support/pair_nest.cpp ]
[ compile support/index_sequence.cpp : : : : ] [ compile support/index_sequence.cpp ]
[ compile support/and.cpp : : : : ] [ compile support/and.cpp ]
# [ compile-fail xxx.cpp : : : : ] # [ compile-fail xxx.cpp ]
; ;
} }

View File

@ -9,28 +9,36 @@
#include <boost/fusion/container/vector/vector.hpp> #include <boost/fusion/container/vector/vector.hpp>
#include <boost/fusion/adapted/mpl.hpp> #include <boost/fusion/adapted/mpl.hpp>
#include <boost/fusion/algorithm/query/count_if.hpp> #include <boost/fusion/algorithm/query/count_if.hpp>
#include <boost/lambda/lambda.hpp>
#include <boost/mpl/vector_c.hpp> #include <boost/mpl/vector_c.hpp>
#include <functional> #include <functional>
template <typename F> struct bind1st;
template <template <typename> class F, typename T>
struct bind1st<F<T> > : public F<T>
{
T n;
bind1st(T n) : n(n) { }
bool operator()(T v) const { return F<T>::operator()(n, v); }
};
int int
main() main()
{ {
{ {
boost::fusion::vector<int, short, double> t(1, 2, 3.3); boost::fusion::vector<int, short, double> t(1, 2, 3.3);
BOOST_TEST(boost::fusion::count_if(t, boost::lambda::_1 == 2) == 1); BOOST_TEST(boost::fusion::count_if(t, bind1st<std::equal_to<double> >(2)) == 1);
} }
{ {
boost::fusion::vector<int, short, double> t(1, 2, 3.3); boost::fusion::vector<int, short, double> t(1, 2, 3.3);
BOOST_TEST(boost::fusion::count_if(t, boost::lambda::_1 == 3) == 0); BOOST_TEST(boost::fusion::count_if(t, bind1st<std::equal_to<double> >(3)) == 0);
} }
{ {
typedef boost::mpl::vector_c<int, 1, 2, 3> mpl_vec; typedef boost::mpl::vector_c<int, 1, 2, 3> mpl_vec;
// Cannot use lambda here as mpl iterators return rvalues and lambda needs lvalues // Cannot use lambda here as mpl iterators return rvalues and lambda needs lvalues
BOOST_TEST(boost::fusion::count_if(mpl_vec(), std::bind2nd(std::less_equal<int>(), 2)) == 2); BOOST_TEST(boost::fusion::count_if(mpl_vec(), bind1st<std::greater_equal<int> >(2)) == 2);
BOOST_TEST(boost::fusion::count_if(mpl_vec(), std::bind2nd(std::greater<int>(), 2)) == 1); BOOST_TEST(boost::fusion::count_if(mpl_vec(), bind1st<std::less<int> >(2)) == 1);
} }
return boost::report_errors(); return boost::report_errors();

View File

@ -8,18 +8,13 @@
#include <boost/config.hpp> #include <boost/config.hpp>
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) #if defined(BOOST_NO_CXX11_HDR_TUPLE) || \
defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
# error "does not meet requirements"
#endif
#include <tuple> #include <tuple>
#include <boost/fusion/include/std_tuple.hpp> #include <boost/fusion/include/std_tuple.hpp>
#define FUSION_SEQUENCE std::tuple #define FUSION_SEQUENCE std::tuple
#include "convert.hpp" #include "convert.hpp"
#else
int main()
{
}
#endif

View File

@ -6,9 +6,10 @@
// at http://www.boost.org/LICENSE_1_0.txt) // at http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/config.hpp> #include <boost/config.hpp>
#ifdef BOOST_NO_CXX11_HDR_ARRAY #ifdef BOOST_NO_CXX11_HDR_ARRAY
int main() {} # error "does not meet requirements"
#else #endif
#ifdef BOOST_MSVC #ifdef BOOST_MSVC
#pragma warning(disable:4180) #pragma warning(disable:4180)
@ -46,4 +47,3 @@ int main()
return boost::report_errors(); return boost::report_errors();
} }
#endif

View File

@ -8,8 +8,10 @@
#include <boost/config.hpp> #include <boost/config.hpp>
// adapted/std_tuple.hpp only supports implementations using variadic templates // adapted/std_tuple.hpp only supports implementations using variadic templates
#if !defined(BOOST_NO_CXX11_HDR_TUPLE) && \ #if defined(BOOST_NO_CXX11_HDR_TUPLE) || \
!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
# error "does not meet requirements"
#endif
#include <boost/detail/lightweight_test.hpp> #include <boost/detail/lightweight_test.hpp>
#include <boost/fusion/adapted/std_tuple.hpp> #include <boost/fusion/adapted/std_tuple.hpp>
@ -19,8 +21,7 @@
#include <tuple> #include <tuple>
#include <string> #include <string>
int int main()
main()
{ {
using namespace boost::fusion; using namespace boost::fusion;
using namespace boost; using namespace boost;
@ -34,13 +35,3 @@ main()
return boost::report_errors(); return boost::report_errors();
} }
#else
int
main()
{
return 0;
}
#endif

View File

@ -8,8 +8,10 @@
// The std_tuple_iterator adaptor only supports implementations // The std_tuple_iterator adaptor only supports implementations
// using variadic templates // using variadic templates
#if !defined(BOOST_NO_CXX11_HDR_TUPLE) && \ #if defined(BOOST_NO_CXX11_HDR_TUPLE) || \
!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
# error "does not meet requirements"
#endif
#include <boost/fusion/adapted/std_tuple.hpp> #include <boost/fusion/adapted/std_tuple.hpp>
@ -17,20 +19,8 @@
#define FUSION_TRAVERSAL_TAG random_access_traversal_tag #define FUSION_TRAVERSAL_TAG random_access_traversal_tag
#include "./iterator.hpp" #include "./iterator.hpp"
int int main()
main()
{ {
test(); test();
return boost::report_errors(); return boost::report_errors();
} }
#else
int
main()
{
return 0;
}
#endif