#include <cassert>#include <algorithm>#include <boost/config/no_tr1/functional.hpp>#include <boost/throw_exception.hpp>#include <boost/config.hpp>#include <boost/function/function_base.hpp>#include <boost/type_traits/is_integral.hpp>#include <boost/preprocessor/enum.hpp>#include <boost/preprocessor/enum_params.hpp>#include <boost/preprocessor/cat.hpp>#include <boost/preprocessor/repeat.hpp>#include <boost/preprocessor/inc.hpp>#include <boost/type_traits/is_void.hpp>
