template <class It, class X>
bool binary_search (...) {
if (begin < end) {
It mid = begin + (end - begin)/2;
if ( x < *mid ) {
return binary_seach (begin, mid);
} else if ( x > *mid ) {
return binary_seach (mid, end);
} else { return true; }
} else { return false; }
}
while)
begin + (end-begin)/2 und nicht
(begin + end)/2 ?