Boost C++ 库

……世界上备受推崇且设计精湛的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

Struct flatten - Boost C++ 函数库
PrevUpHomeNext

Struct flatten

boost::proto::functional::flatten — 一个 多态函数对象 类型,它返回一个 Proto 表达式树的“展平”视图。

提要

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


struct flatten :  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 &)> :  proto::result_of::flatten< Expr > {
  };

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

描述

一个 多态函数对象 类型,它返回一个 Proto 表达式树的“展平”视图。对于一个顶层节点标签类型为 T 的树,展平序列的元素由递归到每个具有相同标签类型的子节点并返回那些不同类型的节点来确定。例如,与表达式 a | b | c 对应的 Proto 表达式树,其展平视图的元素为 [a, b, c],即使该树被分组为 ((a | b) | c)

结果视图是一个 Fusion Forward Sequence。

flatten 公共成员函数

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

    返回一个 Fusion Forward Sequence,表示 expr 的展平视图。

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

    返回一个 Fusion Forward Sequence,表示 expr 的展平视图。


PrevUpHomeNext