template Iterator Find ( const T& value, Iterator first, Iterator last) { using category = typename std::iterator_traits::iterator_category; if constexpr (std::is_same_v) { auto it = std::lower_bound(first, last, value); if (*it == value) return it; else return last; } else return std::find(first,last,value); }