Re: [問題] template的語法
如果class是template class,可以用偏特化來做,編譯時期就卡住使用者。
但是從原文看來似乎只有個別member function有template(?)
可以用typeid來做執行時期的判斷。
下面我放了一個空的FileSystem::Info,
當判斷出true或false之後,就隨便你怎麼設計了。
#include <iostream>
#include <string>
#include <deque>
#include <typeinfo> //for typeid
namespace FileSystem {class Info {};} //just for demo
class Foo {
public:
template<typename T>
void getFiles(T& t) {
std::cout << std::boolalpha
<< (typeid(typename T::value_type)==typeid(FileSystem::Info))
<< '\n';
}
};
int main() {
Foo f;
std::deque<FileSystem::Info> v1;
std::deque<std::string> v2;
f.getFiles(v1);
f.getFiles(v2);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.249.202.9
※ 編輯: dirkc 來自: 111.249.202.9 (03/05 22:31)
→
03/05 23:01, , 1F
03/05 23:01, 1F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 4 篇):
問題
1
4