diff DEPENDENCIES/generic/include/boost/accumulators/statistics/count.hpp @ 16:2665513ce2d3

Add boost headers
author Chris Cannam
date Tue, 05 Aug 2014 11:11:38 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DEPENDENCIES/generic/include/boost/accumulators/statistics/count.hpp	Tue Aug 05 11:11:38 2014 +0100
@@ -0,0 +1,80 @@
+///////////////////////////////////////////////////////////////////////////////
+// count.hpp
+//
+//  Copyright 2005 Eric Niebler. Distributed under the Boost
+//  Software License, Version 1.0. (See accompanying file
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_ACCUMULATORS_STATISTICS_COUNT_HPP_EAN_28_10_2005
+#define BOOST_ACCUMULATORS_STATISTICS_COUNT_HPP_EAN_28_10_2005
+
+#include <boost/mpl/always.hpp>
+#include <boost/accumulators/framework/accumulator_base.hpp>
+#include <boost/accumulators/framework/extractor.hpp>
+#include <boost/accumulators/framework/depends_on.hpp>
+#include <boost/accumulators/statistics_fwd.hpp>
+
+namespace boost { namespace accumulators
+{
+
+namespace impl
+{
+
+    ///////////////////////////////////////////////////////////////////////////////
+    // count_impl
+    struct count_impl
+      : accumulator_base
+    {
+        // for boost::result_of
+        typedef std::size_t result_type;
+
+        count_impl(dont_care)
+          : cnt(0)
+        {
+        }
+
+        void operator ()(dont_care)
+        {
+            ++this->cnt;
+        }
+
+        result_type result(dont_care) const
+        {
+            return this->cnt;
+        }
+
+    private:
+        std::size_t cnt;
+    };
+
+} // namespace impl
+
+///////////////////////////////////////////////////////////////////////////////
+// tag::count
+//
+namespace tag
+{
+    struct count
+      : depends_on<>
+    {
+        /// INTERNAL ONLY
+        ///
+        typedef mpl::always<accumulators::impl::count_impl> impl;
+    };
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// extract::count
+//
+namespace extract
+{
+    extractor<tag::count> const count = {};
+
+    BOOST_ACCUMULATORS_IGNORE_GLOBAL(count)
+}
+
+using extract::count;
+
+}} // namespace boost::accumulators
+
+#endif