+ /** Fetch the next numeric token from the stream
+ * @param token The next token from the stream is placed here
+ * @return True if tokens still remain, false if there are none left
+ */
+ template<typename Numeric>
+ bool GetNumericToken(Numeric& token)
+ {
+ std::string str;
+ if (!GetToken(str))
+ return false;
+
+ token = ConvToNum<Numeric>(str);
+ return true;
+ }
+
+ /** Fetch the entire remaining stream, without tokenizing
+ * @return The remaining part of the stream
+ */
+ const std::string GetRemaining();
+
+ /** Returns true if the end of the stream has been reached
+ * @return True if the end of the stream has been reached, otherwise false
+ */
+ bool StreamEnd();
+
+ /** Returns true if the specified value exists in the stream
+ * @param value The value to search for
+ * @return True if the value was found, False otherwise
+ */
+ bool Contains(const std::string& value);