/*============================================================================= Copyright (c) 2008 Dan Marsden Use modification and distribution are subject to 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). ==============================================================================*/ #include #include #include namespace fusion = boost::fusion; namespace { template struct distinct { static const int value = n; }; struct f { typedef int result_type; template result_type operator()(T const& t) const { return T::value; } }; struct touch { template void operator()(T const&) const {} }; template void test() { fusion::vector< distinct<0, batch>, distinct<1, batch>, distinct<2, batch>, distinct<3, batch>, distinct<4, batch>, distinct<5, batch>, distinct<6, batch>, distinct<7, batch>, distinct<8, batch>, distinct<9, batch> > v; // We're testing transform really // for_each call is to force iteration through the lazy // transform, otherwise very little will happen. fusion::for_each(fusion::transform(v, f()), touch()); } } #include "./driver.hpp"