自從我對部分模板專業化的信息進行一些研究以來,已經過去了一個小時。 不幸的是,這是不成功的.. 我仍然發現了很多信息,但沒有解決我的問題。 所以我希望有人能幫助我。模板類和成員函數的部分模板專業化
考慮以下最少的代碼:
SQLObject.hpp
template<typename T>
class SQLObject
{
public:
template<typename U>
static std::list<T*> filter(const std::string& colum,const std::string& ope,const U& value);
static std::list<T*> filter(const Filter& filter);
}
#include "SQLObject.tpl"
SQLObject.tpl
#include "Filter.hpp"
/* This code do not work, but why ??? */
template<typename T>
template<>
std::list<T*> SQLObject<T>::filter<std::string>(const std::string& colum,const std::string& ope,const std::string& value)
{
// no to_string need whith std::string
return filter(Filter(colum,ope,value));
}
template<typename T>
template<typename U>
std::list<T*> SQLObject<T>::filter(const std::string& colum,const std::string& ope,const U& value)
{
//use to_string with all others types
return filter(Filter(colum,ope,std::to_string(value)));
}
template<typename T>
std::list<T*> SQLObject<T>::filter(const Filter& filter)
{
//some stuff
}
我的問題是這樣的: 我不是能夠spe使用std :: string進行cialize過濾。
所以我嘗試了一個簡單的過載,但沒有成功。 所以我轉向你,希望你能幫助我。
什麼了你寫?你得到了什麼錯誤? –
[** this **](http://stackoverflow.com/a/5513109/420683)能幫助您嗎? – dyp