Daniel Cooke via llvm-dev
2017-Apr-29 14:13 UTC
[llvm-dev] Improvements to std::find and std::count
Hi, I recently posted a question on StackOverflow regarding the performance of std::find and std::count when provided with char* input: http://stackoverflow.com/questions/43483378/why-arent-stdcount-and-stdfind-optimised-to-use-memchr <http://stackoverflow.com/questions/43483378/why-arent-stdcount-and-stdfind-optimised-to-use-memchr>. I would propose adding overloads of these functions for char* and const char* inputs that delegate to memchr, something like: inline const char* find(const char* first, const char* const last, const char value) { const auto result = std::memchr(first, value, last - first); return result != nullptr ? static_cast<const char*>(result) : last; } inline typename std::iterator_traits<const char*>::difference_type count(const char* first, const char* const last, const char value) { typename std::iterator_traits<const char*>::difference_type result {0}; while (first && first != last) { if ((first = static_cast<const char*>(std::memchr(first, value, last - first)))) { ++result; ++first; } } return result; } I’ve never contributed to LLVM, so I’m not sure how to proceed, if this is a change that is likely to be accepted? Best, Dan -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170429/3c1f280c/attachment-0001.html>