typedef typename std::iterator_traits<Iter>::reference reference;
typedef std::char_traits<value_type> traits_type;
- static const size_type npos = std::string::npos;
+ static const size_type npos;
// Works for all iterators
Range() : b_(), e_() {
};
template <class Iter>
-const typename Range<Iter>::size_type Range<Iter>::npos;
+const typename Range<Iter>::size_type Range<Iter>::npos = std::string::npos;
template <class T>
void swap(Range<T>& lhs, Range<T>& rhs) {
ValueType sum = ValueType();
forEachBucket(start, end, [&](const Bucket& bucket,
TimeType bucketStart,
- TimeType nextBucketStart) {
+ TimeType nextBucketStart) -> bool {
sum += this->rangeAdjust(bucketStart, nextBucketStart, start, end,
bucket.sum);
return true;
uint64_t count = 0;
forEachBucket(start, end, [&](const Bucket& bucket,
TimeType bucketStart,
- TimeType nextBucketStart) {
+ TimeType nextBucketStart) -> bool {
count += this->rangeAdjust(bucketStart, nextBucketStart, start, end,
bucket.count);
return true;
uint64_t count = 0;
forEachBucket(start, end, [&](const Bucket& bucket,
TimeType bucketStart,
- TimeType nextBucketStart) {
+ TimeType nextBucketStart) -> bool {
sum += this->rangeAdjust(bucketStart, nextBucketStart, start, end,
bucket.sum);
count += this->rangeAdjust(bucketStart, nextBucketStart, start, end,
void BucketedTimeSeries<VT, TT>::forEachBucket(TimeType start, TimeType end,
Function fn) const {
forEachBucket([&start, &end, &fn] (const Bucket& bucket, TimeType bucketStart,
- TimeType nextBucketStart) {
+ TimeType nextBucketStart) -> bool {
if (start >= nextBucketStart) {
return true;
}