#if !defined(FUSION_ALL_05052005_1237)
#define FUSION_ALL_05052005_1237
+#include <boost/fusion/support/config.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp>
namespace boost { namespace fusion { namespace detail
{
template <typename First, typename Last, typename F>
+ BOOST_FUSION_GPU_ENABLED
inline bool
linear_all(First const&, Last const&, F const&, mpl::true_)
{
}
template <typename First, typename Last, typename F>
+ BOOST_FUSION_GPU_ENABLED
inline bool
linear_all(First const& first, Last const& last, F& f, mpl::false_)
{
}
template <typename Sequence, typename F, typename Tag>
+ BOOST_FUSION_GPU_ENABLED
inline bool
all(Sequence const& seq, F f, Tag)
{
struct unrolled_all
{
template <typename It, typename F>
+ BOOST_FUSION_GPU_ENABLED
static bool call(It const& it, F f)
{
return
struct unrolled_all<3>
{
template <typename It, typename F>
+ BOOST_FUSION_GPU_ENABLED
static bool call(It const& it, F f)
{
return
struct unrolled_all<2>
{
template <typename It, typename F>
+ BOOST_FUSION_GPU_ENABLED
static bool call(It const& it, F f)
{
return
struct unrolled_all<1>
{
template <typename It, typename F>
+ BOOST_FUSION_GPU_ENABLED
static bool call(It const& it, F f)
{
return f(*it);
struct unrolled_all<0>
{
template <typename It, typename F>
+ BOOST_FUSION_GPU_ENABLED
static bool call(It const& /*it*/, F /*f*/)
{
return true;
};
template <typename Sequence, typename F>
+ BOOST_FUSION_GPU_ENABLED
inline bool
all(Sequence const& seq, F f, random_access_traversal_tag)
{