| /////////////////////////////////////////////////////////////////////////////// |
| // accumulator_base.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_FRAMEWORK_ACCUMULATORS_BASE_HPP_EAN_28_10_2005 |
| #define BOOST_ACCUMULATORS_FRAMEWORK_ACCUMULATORS_BASE_HPP_EAN_28_10_2005 |
| |
| #include <boost/mpl/placeholders.hpp> |
| #include <boost/mpl/joint_view.hpp> |
| #include <boost/mpl/single_view.hpp> |
| #include <boost/mpl/fold.hpp> |
| #include <boost/mpl/contains.hpp> |
| #include <boost/mpl/empty_sequence.hpp> |
| #include <boost/accumulators/framework/accumulator_concept.hpp> |
| |
| namespace boost { namespace accumulators |
| { |
| |
| namespace detail |
| { |
| typedef void void_; |
| } |
| |
| /////////////////////////////////////////////////////////////////////////////// |
| // dont_care |
| // |
| struct dont_care |
| { |
| template<typename Args> |
| dont_care(Args const &) |
| { |
| } |
| }; |
| |
| /////////////////////////////////////////////////////////////////////////////// |
| // accumulator_base |
| // |
| struct accumulator_base |
| { |
| // hidden if defined in derived classes |
| detail::void_ operator ()(dont_care) |
| { |
| } |
| |
| typedef mpl::false_ is_droppable; |
| |
| detail::void_ add_ref(dont_care) |
| { |
| } |
| |
| detail::void_ drop(dont_care) |
| { |
| } |
| |
| detail::void_ on_drop(dont_care) |
| { |
| } |
| }; |
| |
| }} // namespace boost::accumulators |
| |
| #endif |