Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Click here to view the latest version of this page.
PrevUpHomeNext

Struct pop_front

boost::proto::functional::pop_front — A PolymorphicFunctionObject type that invokes the fusion::pop_front() algorithm on its argument.

Synopsis

// In header: <boost/proto/fusion.hpp>


struct pop_front :  proto::callable {
  // member classes/structs/unions
  template<typename This, typename Expr> 
  struct result<This(Expr)> :  result< This(Expr const &) > {
  };
  template<typename This, typename Expr> 
  struct result<This(Expr &)> :  fusion::result_of::pop_front< Expr > {
  };

  // public member functions
  template<typename Expr> 
    typename fusion::result_of::pop_front< Expr >::type 
    operator()(Expr &) const;
  template<typename Expr> 
    typename fusion::result_of::pop_front< Expr const >::type 
    operator()(Expr const &) const;
};

Description

A PolymorphicFunctionObject type that invokes the fusion::pop_front() algorithm on its argument. This is useful for defining a CallableTransform such as pop_front(_), which removes the first child from a Proto expression node. Such a transform might be used as the first argument to the proto::fold<> transform; that is, fold all but the first child.

pop_front public member functions

  1. template<typename Expr> 
      typename fusion::result_of::pop_front< Expr >::type 
      operator()(Expr & expr) const;

    Returns:

    fusion::pop_front(expr)

  2. template<typename Expr> 
      typename fusion::result_of::pop_front< Expr const >::type 
      operator()(Expr const & expr) const;

    Returns:

    fusion::pop_front(expr)


PrevUpHomeNext