代碼片段如下。無法理解爲什麼我得到這個錯誤。C++中的函數指針:錯誤:必須使用'。*'或' - > *'來調用函數中的指針 - 成員函數
void
SipObj::check_each_field()
{
map <std::string, sip_field_getter>::iterator msg;
string str;
char name[20];
bool res = false;
sscanf(get_payload(), "%s %*s", name);
LOGINFO(lc()) << "INVITE:" << name;
str = name;
msg = sip_field_map.find(str);
if (msg != sip_field_map.end()) {
sip_field_getter sip_field = msg->second;
res = (this).*sip_field();
}
}
typedef bool (SipObj::*sip_field_getter)();
static map <std::string, sip_field_getter> sip_field_map;
sip_field_getter is a place holder for function names
它是否與'這個 - > sip_field()'(AKA'(*此).sip_field()')工作? – chris
@chris:你似乎真的很有幫助,但總是用評論而不是答案來處理......小心提供一個解釋爲什麼'this.'錯誤的答案?人們不願寫作已經存在於評論中的答案......感覺有點像作弊;) –
@ K-ballo有時你只是想爲某人解決問題,而不是寫出完整的答案。一旦你開始寫答案,你需要深入並確保你100%正確。 –