id summary reporter owner description type status milestone component version severity resolution keywords cc 5491 invalid result for user defined type Akira Takahashi Eric Niebler "`min` is invalid result for user defined type. {{{ #include #include #include #include using namespace boost::accumulators; struct integer { int x; integer() : x(0) {} integer(int x) : x(x) {} integer& operator+=(integer other) { std::cout << ""+=,""; x += other.x; return *this; } }; /* namespace std { template <> struct numeric_limits { static const bool is_specialized = true; static ::integer max() { return std::numeric_limits::max(); } }; } */ bool operator<(integer a, integer b) { std::cout << ""<,""; return a.x < b.x; } int main() { accumulator_set > acc; std::cout << ""add:"" << std::endl; acc(1); acc(2); acc(3); std::cout << std::endl; std::cout << ""extract:"" << std::endl; const integer a = extract::min(acc); const integer b = extract::sum(acc); std::cout << std::endl; std::cout << ""result:"" << std::endl; std::cout << a.x << std::endl; std::cout << b.x << std::endl; } }}} result: {{{ add: <,+=,<,+=,<,+=, extract: result: 0 6 }}} `min` result should be 1. This problem is integer type non specialize std::numeric_limits. Should check std::numeric_limits::is_specialized. I send patch. " Bugs closed To Be Determined accumulator Boost 1.46.1 Problem fixed