29constexpr char const *
to_string(
bool iValue) {
return iValue ?
"true" :
"false"; }
40void splitString(
const std::string &iString,
char iDelimiter, Out oResult,
bool iSkipEmptyEntries =
false)
42 std::stringstream ss(iString);
44 while(std::getline(ss, item, iDelimiter))
46 if(!item.empty() || !iSkipEmptyEntries)
49 if(!iSkipEmptyEntries)
51 if(!iString.empty() && iString[iString.size() - 1] == iDelimiter)
63std::vector<std::string>
splitString(
const std::string &iString,
char iDelimiter,
bool iSkipEmptyEntries =
false);
70template<
typename TFloat>
73 char *endPtr =
nullptr;
74 auto value =
static_cast<TFloat
>(strtod(iString.c_str(), &endPtr));
75 if(endPtr == iString.c_str())
90template<
typename TFloat>
93 char *endPtr =
nullptr;
94 auto value =
static_cast<TFloat
>(strtod(iString.c_str(), &endPtr));
95 if(endPtr == iString.c_str())
103template<
typename TFloat>
104std::vector<TFloat>
splitFloats(
const std::string &iString,
char iDelimiter,
bool iSkipEmptyEntries =
false)
106 static auto f = [] (
const std::string &iString) -> TFloat {
return stringToFloat<TFloat>(iString); };
108 std::vector<TFloat> res{};
110 auto strings =
splitString(iString, iDelimiter, iSkipEmptyEntries);
114 res.reserve(strings.size());
116 std::transform(strings.cbegin(), strings.cend(), std::back_inserter(res), f);
Definition CircularBuffer.h:26
constexpr char const * to_string(bool iValue)
Convenient call to convert a boolean into a string.
Definition StringUtils.h:29
bool stringToFloat(const std::string &iString, TFloat &oValue)
Converts the string to a TFloat (float or double).
Definition StringUtils.h:71
std::vector< std::string > splitString(const std::string &iString, char iDelimiter, bool iSkipEmptyEntries)
Split a string according to a delimiter and returns a vector.
Definition StringUtils.cpp:31
std::vector< TFloat > splitFloats(const std::string &iString, char iDelimiter, bool iSkipEmptyEntries=false)
Converts the string to a an array of floats.
Definition StringUtils.h:104