Je dois définir une méthode get de deux manières différentes. Une pour les types simples T. Et une autre pour std::vector.
template<typename T>
const T& Parameters::get(const std::string& key)
{
Map::iterator i = params_.find(key);
...
return boost::lexical_cast<T>(boost::get<std::string>(i->second));
...
}
Comment puis-je spécialiser cette méthode pour std::vector. Comme là, le code devrait ressembler à quelque chose comme ceci :
template<typename T>
const T& Parameters::get(const std::string& key)
{
Map::iterator i = params_.find(key);
std::vector<std::string> temp = boost::get<std::vector<std::string> >(i->second)
std::vector<T> ret(temp.size());
for(int i=0; i<temp.size(); i++){
ret[i]=boost::lexical_cast<T>(temp[i]);
}
return ret;
}
Mais je ne sais pas comment spécialiser la fonction pour cela. Merci beaucoup.