1
0
Fork 0

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
1 changed files with 5 additions and 3 deletions

View File

@ -2,12 +2,12 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#include <algorithm>
#include <cctype>
#include <cerrno>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <boost/range/algorithm/transform.hpp>
#include "common/common_paths.h"
#include "common/logging/log.h"
#include "common/string_util.h"
@ -24,13 +24,15 @@ namespace Common {
/// Make a string lowercase
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;
}
/// Make a string uppercase
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;
}