stringapi: Accept strings in cmStrCmp

This commit is contained in:
Ben Boeckel 2014-01-17 13:38:27 -05:00 committed by Brad King
parent 3742bb0d32
commit 381d50c149
3 changed files with 11 additions and 6 deletions

View File

@ -660,7 +660,7 @@ void cmQtAutoGenerators::MergeUicOptions(std::vector<std::string> &opts,
++o; ++o;
} }
if (std::find_if(cmArrayBegin(valueOptions), cmArrayEnd(valueOptions), if (std::find_if(cmArrayBegin(valueOptions), cmArrayEnd(valueOptions),
cmStrCmp(o)) != cmArrayEnd(valueOptions)) cmStrCmp(*it)) != cmArrayEnd(valueOptions))
{ {
assert(existingIt + 1 != opts.end()); assert(existingIt + 1 != opts.end());
*(existingIt + 1) = *(it + 1); *(existingIt + 1) = *(it + 1);
@ -831,7 +831,7 @@ void cmQtAutoGenerators::MergeRccOptions(std::vector<std::string> &opts,
++o; ++o;
} }
if (std::find_if(cmArrayBegin(valueOptions), cmArrayEnd(valueOptions), if (std::find_if(cmArrayBegin(valueOptions), cmArrayEnd(valueOptions),
cmStrCmp(o)) != cmArrayEnd(valueOptions)) cmStrCmp(*it)) != cmArrayEnd(valueOptions))
{ {
assert(existingIt + 1 != opts.end()); assert(existingIt + 1 != opts.end());
*(existingIt + 1) = *(it + 1); *(existingIt + 1) = *(it + 1);

View File

@ -449,11 +449,16 @@ bool cmHasLiteralSuffix(T str1, const char (&str2)[N])
struct cmStrCmp { struct cmStrCmp {
cmStrCmp(const char *test) : m_test(test) {} cmStrCmp(const char *test) : m_test(test) {}
cmStrCmp(std::string &test) : m_test(test.c_str()) {} cmStrCmp(const std::string &test) : m_test(test) {}
bool operator()(const std::string& input) const
{
return m_test == input;
}
bool operator()(const char * input) const bool operator()(const char * input) const
{ {
return strcmp(input, m_test) == 0; return strcmp(input, m_test.c_str()) == 0;
} }
// For use with binary_search // For use with binary_search
@ -463,7 +468,7 @@ struct cmStrCmp {
} }
private: private:
const char * const m_test; const cmStdString m_test;
}; };
#endif #endif

View File

@ -1314,7 +1314,7 @@ static bool whiteListedInterfaceProperty(const std::string& prop)
if (std::binary_search(cmArrayBegin(builtIns), if (std::binary_search(cmArrayBegin(builtIns),
cmArrayEnd(builtIns), cmArrayEnd(builtIns),
prop.c_str(), prop.c_str(),
cmStrCmp(prop.c_str()))) cmStrCmp(prop)))
{ {
return true; return true;
} }