#ifndef __ParseString_h__ #define __ParseString_h__ #include "includes" namespace core { class ParseString : std::string { public: ParseString() {} ParseString(std::string value) : std::string(value) {} ParseString(std::string value, char delimiter) : std::string(value) { } void setDelimiter(char delimiter) { this->delimiter = delimiter; parse(); } private: char delimiter; void parse() { std::stringstream sstring((std::string)*this); sstring.imbue(std::locale(sstring.getloc(), new isDelimiter(':'))); } struct isDelimiter : std::ctype { char chr; isDelimiter(char chr) : std::ctype(get_table()) { this->chr = chr; } static mask const* get_table() { static mask rc[table_size]; rc[*chr] = std::ctype_base::space; rc['\n'] = std::ctype_base::space; return &rc[0]; } }; }; #endif