-std::vector<std::string> split_fields(const std::string &, const std::string &, int =-1);
-std::vector<std::string> split_fields(const std::string &, char, int =-1);
-std::vector<std::string> split_long(const std::string &, const std::string &, int =-1);
-std::vector<std::string> split(const std::string &, const std::string & =" \t\r\n", int =-1);
-std::vector<std::string> split(const std::string &, char, int =-1);
+/**
+Checks whether a string consists of digits only.
+*/
+bool isnumrc(const std::string &);
+
+/**
+Checks whether a string consists of alphabetic characters only.
+*/
+bool isalpha(const std::string &);
+
+/**
+Checks whether a string consists of alphanumeric characters only.
+*/
+bool isalnum(const std::string &);
+
+/* These are required to make the standard version work from inside the Msp
+namespace */
+using std::tolower;
+using std::toupper;
+using std::isalpha;
+using std::isalnum;
+
+/**
+Splits a string at occurrences of any of the characters in sep. If max_split
+is non-negative, at most that many split will be performed, i.e. the resulting
+vector will contain at most max_split+1 elements. Two or more consecutive
+separator characters will be treated as a single separator.
+
+@param str A string
+@param sep Separator characters
+@param max_split Maximum number of splits to perform
+*/
+std::vector<std::string> split(const std::string &str, const std::string &sep=" \t\r\n", int max_split=-1);
+
+/**
+Splits a string on occurrences of a single character.
+*/
+std::vector<std::string> split(const std::string &str, char sep, int max_split=-1);