#ifndef CA_UWATERLOO_ALUMNI_DWHARDER_SEARCHING_ALGORITHMS_LINEAR_SEARCH_POINTER #define CA_UWATERLOO_ALUMNI_DWHARDER_SEARCHING_ALGORITHMS_LINEAR_SEARCH_POINTER namespace Searching_algorithms { namespace Linear_search { class Pointer { public: template static bool search( Type const &obj, Type *const array, int const n ) { return search( obj, array, array + n - 1 ); } template static bool search( Type const &obj, Type *const array, int const a, int const b ) { return search( obj, array + a, array + b ); } template static bool search( Type const &obj, Type *a, Type *const b ) { if ( a > b ) { return false; } for ( ; a < b && *a < obj; ++a ) { // do nothing } return ( *a == obj ); } }; } } #endif