31 #ifndef XROOTD_XRDOUCTUTILS_HH
32 #define XROOTD_XRDOUCTUTILS_HH
50 template<
class Container>
51 static void splitString( Container &result,
const std::string &input,
const std::string &delimiter ) {
57 end = input.find(delimiter, start);
59 if (end != std::string::npos)
62 length = input.length() - start;
65 result.push_back(input.substr(start, length));
67 start = end + delimiter.size();
68 }
while (end != std::string::npos);
79 static typename std::map<std::string, T>::const_iterator
caseInsensitiveFind(
const std::map<std::string, T> & m,
const std::string & lowerCaseSearchKey) {
80 auto it = std::find_if(m.begin(),m.end(), [&lowerCaseSearchKey](
const std::pair<std::string, T> & p){
82 p.first.begin(), p.first.end(),
83 lowerCaseSearchKey.begin(), lowerCaseSearchKey.end(),
84 [](unsigned char a, unsigned char b) {
85 return (std::tolower(a) == b);
static void splitString(Container &result, const std::string &input, const std::string &delimiter)
Split a string.
static std::map< std::string, T >::const_iterator caseInsensitiveFind(const std::map< std::string, T > &m, const std::string &lowerCaseSearchKey)