Merge pull request #37 from ros2/fix-warning

Fix warning about comparison between signed and unsigned integers
This commit is contained in:
Esteve Fernandez 2015-06-01 15:49:36 -07:00
commit 5d5edbfab2

View file

@ -309,13 +309,14 @@ Node::list_parameters(
std::lock_guard<std::mutex> lock(mutex_); std::lock_guard<std::mutex> lock(mutex_);
rcl_interfaces::ListParametersResult result; rcl_interfaces::ListParametersResult result;
// TODO: define parameter separator, use "." for now // TODO(esteve): define parameter separator, use "." for now
for (auto & kv : parameters_) { for (auto & kv : parameters_) {
if (std::any_of(prefixes.cbegin(), prefixes.cend(), [&kv, &depth](const std::string & prefix) { if (std::any_of(prefixes.cbegin(), prefixes.cend(), [&kv, &depth](const std::string & prefix) {
if (kv.first.find(prefix + ".") == 0) { if (kv.first.find(prefix + ".") == 0) {
size_t length = prefix.length(); size_t length = prefix.length();
std::string substr = kv.first.substr(length); std::string substr = kv.first.substr(length);
return std::count(substr.begin(), substr.end(), '.') < depth; // Cast as unsigned integer to avoid warning
return static_cast<uint64_t>(std::count(substr.begin(), substr.end(), '.')) < depth;
} }
return false; return false;
})) }))