Boost.Accumulators - MPLシーケンスを使ってみる

boost::accumulators::statsとboost::accumulators::featuresの違いがわからないなぁと思って調べてたら、どうやらMPLシーケンスならなんでもいいようです。

#include <iostream>
#include <boost/mpl/vector.hpp>
#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics.hpp>

using namespace boost::accumulators;

int main()
{
    accumulator_set<double, boost::mpl::vector<tag::min, tag::mean, tag::sum> > acc;

    acc(3.0);
    acc(1.0);
    acc(4.0);

    std::cout << extract::min(acc) << std::endl;
    std::cout << extract::mean(acc) << std::endl;
    std::cout << extract::sum(acc) << std::endl;
}
1
2.66667
8