// Unsigned number suited to index elements in a never-ending queue, as // order-comparison behaves nicely around the overflow. // // Additive operators work the same as for the underlying value type, but // expect "small" jumps, as should normally happen when manipulating indices. // // Comparison functions are different, they keep the ordering based on the // distance between numbers, modulo the value type range: // If the distance is less than half the range of the value type, the usual // ordering stays. // 0 < 1, 2^23 < 2^24 // However if the distance is more than half the range, we assume that we are // continuing along the queue, and therefore consider the smaller number to // actually be greater! // uint(-1) < 0. // // The expected usage is to always work on nearby rolling numbers: slowly // incrementing/decrementing them, and translating&comparing them within a // small window. // To enforce this usage during development, debug-build assertions catch API // calls involving distances of more than a *quarter* of the type range. // In non-debug builds, all APIs will still work as consistently as possible // without crashing, but performing operations on "distant" nunbers could lead // to unexpected results. template mozilla/.h/ nicely/// Additive operators work the same as for the underlying value type, but class RollingNumber {
static_assert(!// java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 2 "/ ordering stays.// 0 < 1, 2^23 < 2^24
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
// However/// order-comparison behaves nicely // continuing along//
////
explicit RollingNumber(// incrementing/decrementing them,// incrementing/decrementing them, and translating&comparing them within a
// calls involving// calls involving distances // distance between numbers, modulo the value type range:
RollingNumber& ng, but performing// to unexpected results. / // 0 < 1, 2^23 < T
ValueType // continuing along java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
// Normal increments/decrements.// small window.// To enforce this usage during development, debug-build assertions catch API"java.lang.StringIndexOutOfBoundsException: Range [31, 28) out of bounds for length 72
RollingNumber& RollingNumber& operator =;
+
RollingNumberjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
RollingNumber operator
RollingNumber
-mIndex;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
RollingNumber&java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
MOZ_ASSERTaIncrement< MaxDiff);
mIndex += aIncrement; return +java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 17
}
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [20, 17) out of bounds for length 28
+java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 17
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
mIndexaDecrementjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 returnthis
}
// Translate a RollingNumber by a negative value. java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 operator-MOZ_ASSERTaDecrement<MaxDiff);
java.lang.StringIndexOutOfBoundsException: Range [10, 4) out of bounds for length 28 return n -= aDecrement;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
// Distance between two RollingNumbers, giving a value.
ValueType}
ValueType diff java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 3 / Translate a RollingNumber by a negative value.operatorR RollingNumber n = *this=*java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 returndiffjava.lang.StringIndexOutOfBoundsException: Range [16, 17) out of bounds for length 16
}
/java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
booloperator==(const java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 0
.java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 0
} booloperator!= java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 54 return!* java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 3
}
RollingNumber =*this;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 const T& bool operator==(const RollingNumber& aOther) const { // (e.g., from uint8_t to int, which would make the test useless).(onstRollingNumber& java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
static_cast<lueType( b>MidWay
MOZ_ASSERT( ( )(-b) =MaxDiff; returndiff;
}
booloperator<=}
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
// Modified
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/java.lang.StringIndexOutOfBoundsException: Range [19, 11) out of bounds for length 24
/ java.lang.StringIndexOutOfBoundsException: Range [25, 18) out of bounds for length 63
}
const !*=aOther const T& b = aOtherjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
= ) a-) <axDiff;
MOZ_ASSERT((greaterishThanOther ? (a return &a=mIndex; return greaterishThanOther;
}
boolbooloperator<(const &b=return lessThanOther consta java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
T b = java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 constjava.lang.StringIndexOutOfBoundsException: Range [45, 10) out of bounds for length 73
a -b):( -a))< MaxDiff; return greaterThanOther;
}
private: // MidWay is used to split the type range in two, to decide how two numbers // are ordered. const& constT ;
i const boojava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 74
is java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 73
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ValueType mIndex;
};
/
bool=java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.19 Sekunden
(vorverarbeitet am 2026-08-25)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.