Summary:
Calling CHECK() in folly will force the program to abort in case of a failure.
On the other hand, for range checking, the standard library throws std::out_of_range for many functions.
Thus it could be a good idea to throw the same exception in folly so that errors can be handled using try {} catch (...) {} blocks.
Test Plan:
from fbcode, type:
fbconfig -r folly; fbmake opt -j32; fbmake runtests_opt -j 32
What other tests should I run?
Reviewed By: tudorb@fb.com
FB internal diff:
D808204
}
void advance(size_type n) {
- if (n > size()) {
+ if (UNLIKELY(n > size())) {
throw std::out_of_range("index out of range");
}
b_ += n;
}
void subtract(size_type n) {
- if (n > size()) {
+ if (UNLIKELY(n > size())) {
throw std::out_of_range("index out of range");
}
e_ -= n;
Range subpiece(size_type first,
size_type length = std::string::npos) const {
- if (first > size()) {
+ if (UNLIKELY(first > size())) {
throw std::out_of_range("index out of range");
}
return Range(b_ + first,