/////////////////////////////////////////////////////////////////////////////// /// \file fold_tree.hpp /// A higher-level transform that uses the fold, and branch transforms /// to recursively fold a tree. // // Copyright 2007 Eric Niebler. 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_PROTO_TRANSFORM_FOLD_TREE_HPP_EAN_06_18_2007 #define BOOST_PROTO_TRANSFORM_FOLD_TREE_HPP_EAN_06_18_2007 #include #include #include namespace boost { namespace proto { namespace transform { namespace detail { template struct fold_tree_ : or_< transform::fold< nary_expr > > > , Grammar > {}; template struct reverse_fold_tree_ : or_< transform::reverse_fold< nary_expr > > > , Grammar > {}; } /// fold_tree /// template struct fold_tree : transform::fold< nary_expr > > , State > {}; /// reverse_fold_tree /// template struct reverse_fold_tree : transform::reverse_fold< nary_expr > > , State > {}; }}} namespace boost { namespace proto { template struct is_transform > : mpl::true_ {}; template struct is_transform > : mpl::true_ {}; }} #endif