#ifndef MSL_ALGORITHM_H_ #define MSL_ALGORITHM_H_ namespace std { template ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last, const T& val); template ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last, const T& val); template InputIt find_if(InputIt first, InputIt last, UnaryPredicate p); /* template struct __fill_n { OutputIt fill_n(OutputIt first, Size count, const unsigned long& value); }; template<> unsigned long* __fill_n::fill_n(unsigned long* first, long count, const unsigned long& value) { for (; count > 0; count--) { *first++ = value; } return first; } template OutputIt fill_n(OutputIt first, Size count, const T& value) { return __fill_n::fill_n(first, count, value); } template void __fill(ForwardIt first, ForwardIt last, const T& value, std::random_access_iterator_tag param_3) { fill_n(first, last - first, value); } */ template void fill(ForwardIt first, ForwardIt last, const T& value) { for (; first != last; ++first){ *first = value; } } } // namespace std #endif