| 430 | size_type needle_length() const noexcept { return needle_.length(); } |
| 431 | size_type operator()(string_type_ haystack) const noexcept { return haystack.rfind(needle_); } |
| 432 | size_type skip_length() const noexcept { |
| 433 | // TODO: Apply Galil rule to match repetitive patterns in strictly linear time. |
| 434 | return is_same_type<overlaps_type_, include_overlaps_type>::value ? 1 : needle_.length(); |
| 435 | } |
| 436 | }; |
| 437 | |
| 438 | /** |