Improved tokenizeString
[libdai.git] / include / dai / util.h
index f913da4..b1378be 100644 (file)
@@ -145,13 +145,20 @@ inline int rnd( int n ) {
 }
 
 
-/// Converts a variable of type \a T to a \c std::string by using a \c std::stringstream
+/// Converts a variable of type \a T to a \c std::string by using a \c boost::lexical_cast
 template<class T>
 std::string toString( const T& x ) {
     return boost::lexical_cast<std::string>(x);
 }
 
 
+/// Converts a variable of type std::string to \a T by using a \c boost::lexical_cast
+template<class T>
+T fromString( const std::string& x ) {
+    return boost::lexical_cast<T>(x);
+}
+
+
 /// Writes a \c std::vector<> to a \c std::ostream
 template<class T>
 std::ostream& operator << (std::ostream& os, const std::vector<T> & x) {
@@ -202,6 +209,17 @@ std::vector<T> concat( const std::vector<T>& u, const std::vector<T>& v ) {
 }
 
 /// Split a string into tokens delimited by one of the characters in \a delim
+/** \param s the string to be split into tokens
+ *  \param singleDelim if \c true, any single delimiter forms a boundary between two tokens; 
+ *         if \c false, a maximal group of consecutive delimiters forms a boundary between two tokens
+ *  \param delim delimiter characters
+ */
+std::vector<std::string> tokenizeString( const std::string& s, bool singleDelim, const std::string& delim="\t\n" );
+
+
+/// Split a string into tokens delimited by one of the characters in \a delim
+/** \deprecated Please use dai::tokenizeString( const std::string&, bool, const std::string& ) instead
+ */
 void tokenizeString( const std::string& s, std::vector<std::string>& outTokens, const std::string& delim="\t\n" );