我試圖創建一個函數來解析XML並使用模板返回std::string
或int
。我想出了下面的代碼:使用模板從函數返回不同的數據類型
template <class T>
T queryXml(char *str)
{
if (typeid(T) == typeid(int))
return evalulate_number(doc);
else
return evaluate_string(doc);
}
...並調用這樣的功能:
queryXml<int>("/people/name"); //I would like an int returned
queryXml<std::string>("/people/name"); //I would like a string returned
但我得到的錯誤說cannot convert pugi::string_t{aka std::basic_string<char>} to int in return
。有沒有更好,更乾淨的方式來使用模板來做到這一點?謝謝!
模板功能instantialized作爲一個整體所以這是行不通的 - 如果我把任何類型的像它不會工作返回類型。 – Csq 2013-02-11 01:49:25