std :: function存储指针可以指向数据成员吗?
从cppreference ,我发现:
类模板std :: function是一个通用的多态函数包装器。 std :: function的实例可以存储,复制和调用任何Callable目标函数,lambdaexpression式,绑定expression式或其他函数对象,以及指向成员函数的指针和指向数据成员的指针 。
我不明白为什么一个std::function应该能够存储这样一个指针,我从来没有听说过这个function。 
 是真的有可能,我错过了什么,或者这是文档中的错误? 
 在这种情况下, operator()应该如何operator() ? 
 从文档 : 
用参数args调用存储的可调用函数目标。
无论如何,这里没有存储可调用函数的目标。 我错了吗?
 说实话,我甚至不知道这个函数的正确语法,否则我会写一个例子来testing它。 
 如何使用以下模板来定义数据成员的指针? 
 template< class R, class... Args > class function<R(Args...)> 
	
 调用std::function<R(ArgTypes...)>的函数调用操作符的效果: 
 R operator()(ArgTypes... args) const 
相当于(§20.9.11.2.4 [func.wrap.func.inv] / p1 ):
 INVOKE(f, std::forward<ArgTypes>(args)..., R) 
其定义包括以下项目符号(第20.9.2节[func.require] / p1 ):
定义INVOKE (f,t1,t2,…,tN)如下:
[…]
1.3 –
t1.*f当N == 1,f是指向类T成员数据的指针,t1是types为T的对象或对types为T的对象的引用,或者是对派生types的对象的引用来自T;
 那么当f是存储在std::function的内部调用者中的数据成员的指针时,则std::function本身应该定义一个参数,例如: 
 std::function<int(std::pair<int,int>)> f = &std::pair<int,int>::first; f(std::make_pair(1, 2)); 
DEMO