作者CindyLinz (Cindy Wang)
看板C_and_CPP
標題Re: [問題] <unresolved overloaded function type>
時間Tue Jul 19 12:28:39 2011
※ 引述《david50407 (David07)》之銘言:
: 開發平台(Platform): C++
: 額外使用到的函數庫(Library Used): null
: 問題(Question):遇到<unresolved overloaded function type>
: 餵入的資料(Input):null
: 預期的正確結果(Expected Output):compile 成功
: 錯誤結果(Wrong Output):
: Sources/CUserData.cpp: In constructor ‘UnknowBBS::UserData::UserData()’:
: Sources/CUserData.cpp:11: error: no matching function for call to ‘
: UnknowBBS::StringComparer<void (*)(FILE*, int)>::add(const char [3],
: <unresolved overloaded function type>)’
: ./Sources/./Tools/StringComparer.h:23: note: candidates are:
: UnknowBBS::StringComparer<R> UnknowBBS::StringComparer<R>::add(char*, R)
: [with R = void (*)(FILE*, int)]
: 程式碼(Code):
: typedef void (*UDdelegate)(FILE *, int);
: StringComparer<UDdelegate> sc;
: sc.add("id", UserData::read_id);
: void UserData::read_id(FILE *f, int length) {}
: template <typename R>
: StringComparer StringComparer::add(string key, R val)
: {
: keys.push_back(key);
: vals.push_back(val);
: return this;
: }
: /*
: std::vector<string> keys;
: std::vector<R> vals;
: */
: 補充說明(Supplement):
: 額... 編譯錯誤
: 我丟的是函數指標
: 但是給了我一個
: <unresolved overloaded function type>
你 error msg 要看完啊~~
這邊
./Sources/./Tools/StringComparer.h:23: note: candidates are:
UnknowBBS::StringComparer<R> UnknowBBS::StringComparer<R>::add(char*, R)
[with R = void (*)(FILE*, int)]
他提醒(建議)你要把
StringComparer StringComparer::add(string key, R val)
改成
StringComparer<R> StringComparer<R>::add(string key, R val)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.242.246.249
推 david50407:其實不影響....我家了之後還是一樣的error = =| 07/19 12:31
→ CindyLinz:嗯, 我看錯了, 應該是要改你呼叫的地方 07/19 12:40
→ CindyLinz:不過你那邊好像沒有貼上來 07/19 12:40
推 david50407:sc.add("id", UserData::read_id); 07/19 13:23
→ CindyLinz:sc.add<UDdelegate>("id", UserData::read_id) 07/19 13:31
→ CindyLinz:不過.. UserData 又是什麼東東.. 07/19 13:31
推 david50407:很簡單的class... 07/19 14:06
推 david50407:裏面只有read_id函數 跟int id; 07/19 15:28
※ 編輯: CindyLinz 來自: 210.242.246.249 (09/10 13:19)