...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::accumulators::impl::tail_impl
// In header: <boost/accumulators/statistics/tail.hpp> template<typename Sample, typename LeftRight> struct tail_impl : public accumulator_base { // types typedef mpl::if_< is_same< LeftRight, right >, numeric::functional::greater< Sampleconst, Sampleconst >, numeric::functional::less< Sampleconst, Sampleconst > >::type predicate_type; typedef unspecified result_type; // member classes/structs/unions struct indirect_cmp { // types typedef std::size_t first_argument_type; typedef std::size_t second_argument_type; typedef bool result_type; // public member functions indirect_cmp(std::vector< Sample > const &); bool operator()(std::size_t, std::size_t) const; }; struct is_tail_variate { // member classes/structs/unions template<typename T> struct apply { }; }; // public member functions BOOST_MPL_ASSERT((mpl::or_< is_same< LeftRight, right >, is_same< LeftRight, left > >)); template<typename Args> tail_impl(Args const &); tail_impl(tail_impl const &); template<typename Args> void operator()(Args const &); result_type result(dont_care) const; template<typename Archive> void serialize(Archive &, const unsigned int); // private member functions template<typename Args> void assign(Args const &, std::size_t); };
tail_impl
public member functionsBOOST_MPL_ASSERT((mpl::or_< is_same< LeftRight, right >, is_same< LeftRight, left > >));
template<typename Args> tail_impl(Args const & args);
tail_impl(tail_impl const & that);
template<typename Args> void operator()(Args const & args);
result_type result(dont_care) const;
template<typename Archive> void serialize(Archive & ar, const unsigned int file_version);