mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Fixed build (no include path was specified) #2513
This commit is contained in:
parent
4e8082a699
commit
e4776e8b5d
@ -1,5 +1,5 @@
|
||||
#include "StringUtils.h"
|
||||
#include <boost/algorithm/string.hpp>
|
||||
|
||||
|
||||
namespace detail
|
||||
{
|
||||
@ -15,10 +15,3 @@ bool endsWith(const std::string & s, const char * suffix, size_t suffix_size)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
std::string trim(const std::string & str, const std::function<bool(char)> & predicate)
|
||||
{
|
||||
std::string trimmed = str;
|
||||
boost::trim_if(trimmed, predicate);
|
||||
return trimmed;
|
||||
}
|
||||
|
@ -4,7 +4,6 @@
|
||||
#include <cstring>
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
#include <functional>
|
||||
|
||||
|
||||
namespace detail
|
||||
@ -135,5 +134,31 @@ inline bool equalsCaseInsensitive(char a, char b)
|
||||
}
|
||||
|
||||
|
||||
/// Inefficient.
|
||||
std::string trim(const std::string & str, const std::function<bool(char)> & predicate);
|
||||
template <typename F>
|
||||
std::string trim(const std::string & str, F && predicate)
|
||||
{
|
||||
size_t cut_front = 0;
|
||||
size_t cut_back = 0;
|
||||
size_t size = str.size();
|
||||
|
||||
for (size_t i = 0; i < size; ++i)
|
||||
{
|
||||
if (predicate(str[i]))
|
||||
++cut_front;
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
if (cut_front == size)
|
||||
return {};
|
||||
|
||||
for (auto it = str.rbegin(); it != str.rend(); ++it)
|
||||
{
|
||||
if (predicate(*it))
|
||||
++cut_back;
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
return str.substr(cut_front, size - cut_front - cut_back);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user