作者ireullin (raison detre)
看板C_and_CPP
標題[問題] template的語法
時間Wed Mar 5 18:32:48 2014
請問一下各位
以下是我class中的一個template method
只要傳進 vector, deque或是list就可以運作
但我希望可以限制使用者傳的是
std::vector<FileSystem::Info>
std::deque<FileSystem::Info>
std::list<FileSystem::Info>
之類的
避免使用者傳了
std::vector<std::string>
std::deque<std::string>
std::list<std::string>
之類的東西
請問我語法該如何修改
template<typename T>
void getFiles(T& t)
{
DIR* _dir = opendir(m_name.c_str());
if(_dir==NULL)
return;
while(true)
{
dirent* _dirent = readdir(_dir);
if ((_dirent == NULL) || (_dirent->d_name == NULL))
break;
if(strcmp(_dirent->d_name,"..")==0
|| strcmp(_dirent->d_name,".")==0
|| strcmp(_dirent->d_name,"/")==0
)
continue;
FileSystem::Info _info = this->join(std::string(_dirent->d_name));
t.push_back(_info);
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.250.21.20
推 dirkc:簡潔漂亮,c++11以後的作法? 03/05 22:25
→ diabloevagto:c++11 的沒錯 03/05 22:43
→ loveme00835:是因為呼叫了某些成員函式所以才作這樣限制? 03/06 01:43