FREE Subscription to Dr. Dobb’s Digest: Same Great Content, New Digital Edition
Site Archive (Complete)
C++
Email
Print
Reprint

add to:
Del.icio.us
Digg
Google
Furl
Slashdot
Y! MyWeb
Blink
October 01, 2004

Ranges: Concepts and Implementations

(Page 3 of 6)

October, 2004: Ranges: Concepts and Implementations

Listing 1

template <typename R, typename T>
size_t r_count_impl(R r, const T &val, notional_range_tag const &)
{
  size_t n;
  for(n = 0; r; ++r)
  {
    if(val == *r)

    {
      ++n;
    }
  }
  return n;
}
template <typename R, typename T>
size_t r_count_impl(R r, const T &val, iterable_range_tag const &)
{
  return std::count(r.begin(), r.end(), val);
}
template <typename R, typename T>
size_t r_count_impl(R r, const T &val, indirect_range_tag const &)
{
  return r.count(val);
}
template <typename R, typename T>
size_t r_count(R r, const T &val)
{
  return r_count_impl(r, val, r);
}

Previous Page | 1 | 2 | 3 | 4 | 5 | 6 Next Page
TOP 5 ARTICLES
No Top Articles.



MICROSITES
FEATURED TOPIC

ADDITIONAL TOPICS

INFO-LINK