14 #ifndef MYNTEYE_UTIL_STRINGS_H_ 15 #define MYNTEYE_UTIL_STRINGS_H_ 26 #include "mynteyed/stubs/global.h" 28 MYNTEYE_BEGIN_NAMESPACE
34 : std::runtime_error(std::move(what_arg)) {}
36 : std::runtime_error(std::move(what_arg)) {}
43 std::string to_string(
const T& value) {
44 std::ostringstream os;
50 T Argument(T value) noexcept {
55 T
const* Argument(std::basic_string<T>
const& value) noexcept {
59 inline const char* Argument(
bool value) noexcept {
60 return value ?
"true" :
"false";
65 template <
typename... Args>
66 std::string format_cstring(
const std::string& format,
const Args&... args) {
68 std::size_t size = snprintf(
nullptr, 0, format.c_str(), args...) + 1;
69 std::unique_ptr<char[]> buf(
new char[size]);
70 snprintf(buf.get(), size, format.c_str(), args...);
72 return std::string(buf.get(), buf.get() + size - 1);
76 inline std::string format_cstring(
const std::string& format) {
81 template <
typename... Args>
82 std::string format_string(
const std::string& format,
const Args&... args) {
83 return format_cstring(format, Argument(args)...);
87 inline std::string format_string(
const std::string& format) {
92 int hex2int(
const std::string &text);
95 bool starts_with(
const std::string &text,
const std::string &prefix);
98 bool ends_with(
const std::string &text,
const std::string &suffix);
101 std::vector<std::string> split(
102 const std::string &text,
const std::string &delimiters);
104 MYNTEYE_API
void ltrim(std::string &s);
105 MYNTEYE_API
void rtrim(std::string &s);
106 MYNTEYE_API
void trim(std::string &s);
109 std::string trim_copy(
const std::string &text);
113 MYNTEYE_END_NAMESPACE
115 #endif // MYNTEYE_UTIL_STRINGS_H_ The strings error.
Definition: strings.h:31