1///////////////////////////////////////////////////////////////////////////////
2// accumulator_base.hpp
3//
4// Copyright 2005 Eric Niebler. Distributed under the Boost
5// Software License, Version 1.0. (See accompanying file
6// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7
8#ifndef BOOST_ACCUMULATORS_FRAMEWORK_ACCUMULATORS_BASE_HPP_EAN_28_10_2005
9#define BOOST_ACCUMULATORS_FRAMEWORK_ACCUMULATORS_BASE_HPP_EAN_28_10_2005
10
11#include <boost/mpl/placeholders.hpp>
12#include <boost/mpl/joint_view.hpp>
13#include <boost/mpl/single_view.hpp>
14#include <boost/mpl/fold.hpp>
15#include <boost/mpl/contains.hpp>
16#include <boost/mpl/empty_sequence.hpp>
17#include <boost/accumulators/framework/accumulator_concept.hpp>
18
19namespace boost { namespace accumulators
20{
21
22namespace detail
23{
24 typedef void void_;
25}
26
27///////////////////////////////////////////////////////////////////////////////
28// dont_care
29//
30struct dont_care
31{
32 template<typename Args>
33 dont_care(Args const &)
34 {
35 }
36};
37
38///////////////////////////////////////////////////////////////////////////////
39// accumulator_base
40//
41struct accumulator_base
42{
43 // hidden if defined in derived classes
44 detail::void_ operator ()(dont_care)
45 {
46 }
47
48 typedef mpl::false_ is_droppable;
49
50 detail::void_ add_ref(dont_care)
51 {
52 }
53
54 detail::void_ drop(dont_care)
55 {
56 }
57
58 detail::void_ on_drop(dont_care)
59 {
60 }
61};
62
63}} // namespace boost::accumulators
64
65#endif
66

source code of include/boost/accumulators/framework/accumulator_base.hpp