c++11 - Returning different template specialisations from a function -
i have created c++11 class in want parse string , return object based on data in string. object want return defined as:
 // container topic data , id template <typename t>  class topic { public:   topic(string id, t data)   : _id(id), _data(data)   {}  private:   string _id;   t _data; }; the function returns object defined as:
// parses string , splits components
class topicparser { public:   template <class t>   static topic<t>   parse(string message)   {     t data; // string, vector<string> or map<string, string>     string id = "123";     topic<t> t(id, data);     return t;   }   }; i (think i) able call function in way:
string message = "some message parse..."; auto = topicparser::parse<topic<vector<string>>>(message); auto b = topicparser::parse<topic<string>>(message); but compiler complains that:
no matching function call ‘topic<std::vector<std::basic_string<char> > >::topic()’ as can tell, i'm not templates expert. i'm trying approved way of using templates of should prefer other method?
using topic<vector<string>> template argument useless here, guess. remove topic:
auto = topicparser::parse<vector<string>>(message); auto b = topicparser::parse<string>(message); 
Comments
Post a Comment