我尝试将对成员函数(func)的引用赋予函数(Multiprotocol),并使用此类的对象(z)对其进行调用。 但是我在生产线方面遇到了问题
result = z.*f(std::forward<Args>(args)...));
我尝试过
z.(*f) (std::forward<Args>(args)...))
和
z.(*(&f)(std::forward<Args>(args)...));
但是我不知道该怎么做。有人可以帮我吗?
class test
{
public:
static int func()
{
std::cout << "in func";
}
};
class MultiProtocol
{
public:
template<typename Function, typename... Args>
bool functionImpl(Function f, Args&&... args)
{
int result = 0;
result = z.*f(std::forward<Args>(args)...));
return result;
}
private:
test z;
};
主要是:
int main()
{
MultiProtocol rr;
rr.functionImpl(&test::func);
}
答案 0 :(得分:0)
几乎是:
z.(*f) (std::forward<Args>(args)...))
不能
z.(*(&f)(std::forward<Args>(args)...));
.*
我们应该使用运算符->*
(或z.*f(std::forward<Args>(args)...)
)。
f(args...)
是有效的,如果int test::*
会返回z .* (f(std::forward<Args>(args)...))
(实际上是/* connect to gmail */
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'xxxxx@gmail.com';
$password = 'xxxxx';
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
/* grab emails */
$emails = imap_search($inbox,"RECENT");
的成员上的指针)。