Niebloids, named after Eric Niebler, are a type of function object that the standard uses for customization points from C++17 onward. With the introduction of standard ranges described in Chapter 5, Leveraging C++ Language Features, their popularity started to grow, but they were first proposed by Niebler back in 2014. Their purpose is to disable ADL where it's not wanted so overloads from other namespaces are not considered by the compiler. Remember the two-step idiom from the previous sections? Because it's inconvenient and easy to forget, the notion of customization point objects was introduced. In essence, these are function objects performing the two-step for you.
If your libraries should provide customization points, it's probably a good idea to implement them using niebloids. All the customization points in the standard library introduced in C++17 and later are implemented this way for a reason. Even if you just need to create a function object...