Re: [問題] template的語法

看板C_and_CPP作者 (raise(11))時間10年前 (2014/03/05 22:16), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/4 (看更多)
如果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
PO完才看到azureblaze的分享,編譯時期就卡住較好,推薦
03/05 23:01, 1F
文章代碼(AID): #1J5p75OW (C_and_CPP)
文章代碼(AID): #1J5p75OW (C_and_CPP)