common/string_utils: replace boost::transform with std counterpart

Note: according to cppreference it is necessary to convert char to unsigned char when using std::tolower and std::toupper, otherwise the behaviour would be undefined.
This commit is contained in:
zhupengfei 2018-07-25 08:03:43 +08:00
parent 87872aa369
commit cc1f44f7bd
No known key found for this signature in database
GPG Key ID: 85B82A3E62174206

View File

@ -2,12 +2,12 @@
// Licensed under GPLv2 or any later version // Licensed under GPLv2 or any later version
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include <algorithm>
#include <cctype> #include <cctype>
#include <cerrno> #include <cerrno>
#include <cstdio> #include <cstdio>
#include <cstdlib> #include <cstdlib>
#include <cstring> #include <cstring>
#include <boost/range/algorithm/transform.hpp>
#include "common/common_paths.h" #include "common/common_paths.h"
#include "common/logging/log.h" #include "common/logging/log.h"
#include "common/string_util.h" #include "common/string_util.h"
@ -24,13 +24,15 @@ namespace Common {
/// Make a string lowercase /// Make a string lowercase
std::string ToLower(std::string str) { std::string ToLower(std::string str) {
boost::transform(str, str.begin(), ::tolower); std::transform(str.begin(), str.end(), str.begin(),
[](unsigned char c) { return std::tolower(c); });
return str; return str;
} }
/// Make a string uppercase /// Make a string uppercase
std::string ToUpper(std::string str) { std::string ToUpper(std::string str) {
boost::transform(str, str.begin(), ::toupper); std::transform(str.begin(), str.end(), str.begin(),
[](unsigned char c) { return std::toupper(c); });
return str; return str;
} }