|
std::vector< std::string > | split (const std::string &s, char delim) |
| Split a string by a delim. More...
|
|
template<typename T > |
std::string | as_string (const T &v) |
| simple utility to convert various types to a string More...
|
|
template<typename T , typename = typename std::enable_if<std::is_constructible<std::string, T>::value>::type> |
auto | as_string (T &&v) -> decltype(std::forward< T >(v)) |
|
template<typename T > |
std::string | join (const T &v, std::string delim=",") |
| Simple function to join a string. More...
|
|
template<typename T , typename Callable , typename = typename std::enable_if<!std::is_constructible<std::string, Callable>::value>::type> |
std::string | join (const T &v, Callable func, std::string delim=",") |
| Simple function to join a string from processed elements. More...
|
|
template<typename T > |
std::string | rjoin (const T &v, std::string delim=",") |
| Join a string in reverse order. More...
|
|
std::string & | ltrim (std::string &str) |
| Trim whitespace from left of string. More...
|
|
std::string & | ltrim (std::string &str, const std::string &filter) |
| Trim anything from left of string. More...
|
|
std::string & | rtrim (std::string &str) |
| Trim whitespace from right of string. More...
|
|
std::string & | rtrim (std::string &str, const std::string &filter) |
| Trim anything from right of string. More...
|
|
std::string & | trim (std::string &str) |
| Trim whitespace from string. More...
|
|
std::string & | trim (std::string &str, const std::string filter) |
| Trim anything from string. More...
|
|
std::string | trim_copy (const std::string &str) |
| Make a copy of the string and then trim it. More...
|
|
std::string | trim_copy (const std::string &str, const std::string &filter) |
| Make a copy of the string and then trim it, any filter string can be used (any char in string is filtered) More...
|
|
std::ostream & | format_help (std::ostream &out, std::string name, std::string description, size_t wid) |
| Print a two part "help" string. More...
|
|
template<typename T > |
bool | valid_first_char (T c) |
| Verify the first character of an option. More...
|
|
template<typename T > |
bool | valid_later_char (T c) |
| Verify following characters of an option. More...
|
|
bool | valid_name_string (const std::string &str) |
| Verify an option name. More...
|
|
bool | isalpha (const std::string &str) |
| Verify that str consists of letters only. More...
|
|
std::string | to_lower (std::string str) |
| Return a lower case version of a string. More...
|
|
std::string | remove_underscore (std::string str) |
| remove underscores from a string More...
|
|
std::string | find_and_replace (std::string str, std::string from, std::string to) |
| Find and replace a substring with another substring. More...
|
|
bool | has_default_flag_values (const std::string &flags) |
| check if the flag definitions has possible false flags More...
|
|
void | remove_default_flag_values (std::string &flags) |
|
std::ptrdiff_t | find_member (std::string name, const std::vector< std::string > names, bool ignore_case=false, bool ignore_underscore=false) |
| Check if a string is a member of a list of strings and optionally ignore case or ignore underscores. More...
|
|
template<typename Callable > |
std::string | find_and_modify (std::string str, std::string trigger, Callable modify) |
|
std::vector< std::string > | split_up (std::string str) |
|
std::string | fix_newlines (std::string leader, std::string input) |
|
size_t | escape_detect (std::string &str, size_t offset) |
|
std::string & | add_quotes_if_needed (std::string &str) |
| Add quotes if the string contains spaces. More...
|
|
template<typename T , enable_if_t< std::is_constructible< std::string, T >::value, detail::enabler > = detail::dummy> |
auto | to_string (T &&value) -> decltype(std::forward< T >(value)) |
| Convert an object to a string (directly forward if this can become a string) More...
|
|
template<typename T , enable_if_t<!std::is_constructible< std::string, T >::value &&is_streamable< std::stringstream, T >::value, detail::enabler > = detail::dummy> |
std::string | to_string (T &&value) |
| Convert an object to a string (streaming must be supported for that type) More...
|
|
template<typename T , enable_if_t< std::is_integral< T >::value &&std::is_signed< T >::value, detail::enabler > = detail::dummy> |
constexpr const char * | type_name () |
| This one should not be used, since vector types print the internal type. More...
|
|
int64_t | to_flag_value (std::string val) |
| Convert a flag into an integer value typically binary flags. More...
|
|
template<typename T , enable_if_t< std::is_integral< T >::value &&std::is_signed< T >::value &&!is_bool< T >::value &&!std::is_enum< T >::value, detail::enabler > = detail::dummy> |
bool | lexical_cast (std::string input, T &output) |
| Signed integers. More...
|
|
template<typename T , enable_if_t< std::is_integral< T >::value &&std::is_unsigned< T >::value, detail::enabler > = detail::dummy> |
void | sum_flag_vector (const std::vector< std::string > &flags, T &output) |
|
bool | split_short (const std::string ¤t, std::string &name, std::string &rest) |
|
bool | split_long (const std::string ¤t, std::string &name, std::string &value) |
|
bool | split_windows_style (const std::string ¤t, std::string &name, std::string &value) |
|
std::vector< std::string > | split_names (std::string current) |
|
std::vector< std::pair< std::string, std::string > > | get_default_flag_values (const std::string &str) |
| extract default flag values either {def} or starting with a ! More...
|
|
std::tuple< std::vector< std::string >, std::vector< std::string >, std::string > | get_names (const std::vector< std::string > &input) |
| Get a vector of short names, one of long names, and a single name. More...
|
|
std::string | ini_join (std::vector< std::string > args) |
| Comma separated join, adds quotes if needed. More...
|
|
template<typename T , enable_if_t< is_copyable_ptr< typename std::remove_reference< T >::type >::value, detail::enabler > = detail::dummy> |
auto | smart_deref (T value) -> decltype(*value) |
|
template<typename T , enable_if_t<!is_copyable_ptr< typename std::remove_reference< T >::type >::value, detail::enabler > = detail::dummy> |
std::remove_reference< T >::type & | smart_deref (T &value) |
|
template<typename T > |
std::string | generate_set (const T &set) |
| Generate a string representation of a set. More...
|
|
template<typename T > |
std::string | generate_map (const T &map, bool key_only=false) |
| Generate a string representation of a map. More...
|
|
template<typename T , typename V > |
static auto | test_find (int) -> sfinae_true< decltype(std::declval< T >().find(std::declval< V >()))> |
|
template<typename , typename V > |
static auto | test_find (long) -> std::false_type |
|
template<typename T , typename V , enable_if_t<!has_find< T, V >::value, detail::enabler > = detail::dummy> |
auto | search (const T &set, const V &val) -> std::pair< bool, decltype(std::begin(detail::smart_deref(set)))> |
| A search function. More...
|
|
template<typename T , typename V > |
auto | search (const T &set, const V &val, const std::function< V(V)> &filter_function) -> std::pair< bool, decltype(std::begin(detail::smart_deref(set)))> |
| A search function with a filter function. More...
|
|
template<typename T > |
std::enable_if< std::is_integral< T >::value, bool >::type | checked_multiply (T &a, T b) |
| Performs a *= b; if it doesn't cause integer overflow. Returns false otherwise. More...
|
|
template<typename T > |
std::enable_if< std::is_floating_point< T >::value, bool >::type | checked_multiply (T &a, T b) |
| Performs a *= b; if it doesn't equal infinity. Returns false otherwise. More...
|
|
std::pair< std::string, std::string > | split_program_name (std::string commandline) |
|