This patch adds _VSTD:: to some calls to make_pair inside the implementations of searchers, to prevent things exploding if there is a make_pair in an associated namespace of a user-defined type. https://godbolt.org/z/xAFG98
I didn't fix (or add tests to) the Boyer-Moore or Boyer-Moore-Horspool searchers in experimental/, since I couldn't get those to work with user-defined types at all. After defining the hash function properly, there seems to be an issue with a vector<value_type> __scratch in a helper function that I don't understand. See https://godbolt.org/z/heJ75B -- the same code works with libstdc++. If this is a separate issue, I'd be happy to write up a bug. (Also, I don't even know... is the experimental/ stuff still actively supported/bugfixed/etc?)
I did, however, add tests to the regular (currently XFAILed) BM and BMH tests in utilities.
I found this (and a couple other issues, patches forthcoming) by running https://reviews.llvm.org/D72282 over libc++ locally.
Please add a single additional test for each function that was fixed.
Separation of test concerns is better than carpet bombing the tests to prevent ADL,
and it makes the added test more understandable.
Once that's done this diff should be much smaller than it currently is.