| Home | Libraries | People | FAQ | More

## Struct template tail_impl

boost::accumulators::impl::tail_impl

## Synopsis

    // In header: <boost/accumulators/statistics/tail.hpp>

    template<typename Sample, typename LeftRight>
    struct tail_impl {
      // types
      typedef mpl::if_< is_same< LeftRight, right >, numeric::functional::greater< Sample const, Sample const  >, numeric::functional::less< Sample const, Sample const  > >::type predicate_type;
      typedef unspecified                                                                                                                                                          result_type;

      // member classes/structs/unions

      struct indirect_cmp {
        // construct/copy/destruct
        indirect_cmp(std::vector< Sample > const &);
        indirect_cmp & operator=(indirect_cmp const &);

        // public member functions
        bool operator()(std::size_t, std::size_t) const;
      };

      struct is_tail_variate {
        // member classes/structs/unions
        template<typename T>
        struct apply {
        };
      };

      // construct/copy/destruct
      template<typename Args> tail_impl(Args const &);
      tail_impl(tail_impl const &);

      // public member functions
       BOOST_MPL_ASSERT((mpl::or_< is_same< LeftRight, right >, is_same< LeftRight, left > >));
      template<typename Args> void operator()(Args const &);
      result_type result(dont_care) const;

      // private member functions
      template<typename Args> void assign(Args const &, std::size_t);
    };

## Description

### `tail_impl` public construct/copy/destruct

1.     template<typename Args> tail_impl(Args const & args);

2.     tail_impl(tail_impl const & that);

### `tail_impl` public member functions

1.      BOOST_MPL_ASSERT((mpl::or_< is_same< LeftRight, right >, is_same< LeftRight, left > >));

2.     template<typename Args> void operator()(Args const & args);

3.     result_type result(dont_care) const;

### `tail_impl` private member functions

1.     template<typename Args> void assign(Args const & args, std::size_t index);