#pragma once #include <_strings.h> #include namespace abnf::detail { struct iless { using is_transparent = void; bool operator()(std::string_view lhs, std::string_view rhs) const { int const cmp = strncasecmp(lhs.data(), rhs.data(), std::min(lhs.size(), rhs.size())); return cmp < 0 || (cmp == 0 && lhs.size() < rhs.size()); } }; }