0
我想將模板函數傳遞給另一個需要typedef參數的函數。將模板函數傳遞給另一個採用typedef參數的函數
例如,我有功能
在header.h
template<typename A, typename B>
class header: public baseHeader<A, B>{
public:
typedef void (* funcPointer)(void);
// and more...
}
在source.cxx
template<typename A, typename B>
void dosomething(void *arg){
// code here
}
void processDoSomething(funcPointer F){
// code here
}
template<typename A, typename B>
void work(){
processDoSomething(dosomething);
}
很抱歉的代碼是非常凌亂,但我試圖要做的是將模板函數傳遞給另一個接受typedef參數的函數。我在processDoSomething(dosomething)處得到「未解析的重載函數類型」錯誤,並說它與typdef參數不匹配。
我對模板功能沒有太多經驗,所以我不確定是什麼錯誤。 有人可以幫我嗎?
funcPointer是在頭文件類中定義的,所以你需要在你的processDoSomething函數中加上前綴。因爲它不依賴於模板論證,所以你可以在類之外移動typedef嗎? –
是的,我可以,但是你的意思是什麼? – js0823
'header :: funcPointer F' or something –