diff options
author | Josh Blum <josh@joshknows.com> | 2010-08-12 10:08:17 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2010-08-12 10:08:17 -0700 |
commit | 805d4a0cff00fb4e0071bb300436bb7eefb8fb16 (patch) | |
tree | d3e076ecff7e6ce7899b7cb8da0e932ee5ca8236 /host/include | |
parent | ef6953024f1075a729e85f2511c75de337879888 (diff) | |
download | uhd-805d4a0cff00fb4e0071bb300436bb7eefb8fb16.tar.gz uhd-805d4a0cff00fb4e0071bb300436bb7eefb8fb16.tar.bz2 uhd-805d4a0cff00fb4e0071bb300436bb7eefb8fb16.zip |
uhd: made split string utility function
Diffstat (limited to 'host/include')
-rw-r--r-- | host/include/uhd/utils/algorithm.hpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/host/include/uhd/utils/algorithm.hpp b/host/include/uhd/utils/algorithm.hpp index 1b5eacfa9..53c571e4e 100644 --- a/host/include/uhd/utils/algorithm.hpp +++ b/host/include/uhd/utils/algorithm.hpp @@ -22,6 +22,9 @@ #include <boost/range/begin.hpp> #include <boost/range/end.hpp> #include <boost/range/size.hpp> +#include <boost/algorithm/string.hpp> +#include <vector> +#include <string> /*! \file algorithm.hpp * Useful templated functions and classes that I like to pretend are part of stl. @@ -30,6 +33,24 @@ namespace std{ /*! + * Split a string at the separation characters. + * \param string the string to split + * \param sep the separator characters + * \return a range of strings + */ + inline std::vector<std::string> split_string( + const std::string &string, const std::string &sep = "\t " + ){ + std::vector<std::string> strings; + if (not string.empty()) boost::split( + // do not split an empty string: + // let me tell you about the time when boost::split segfaulted... + strings, string, boost::is_any_of(sep) + ); + return strings; + } + + /*! * A wrapper around std::copy that takes ranges instead of iterators. * * Copy the elements of the source range into the destination range. |