std::mem_fun_ref
STD:MEM[医]乐趣[医]参考文献
Defined in header | | |
---|---|---|
template< class Res, class T > std::mem_fun_ref_t<Res,T> mem_fun_ref( Res (T::*f)() | (1) | (until C++17)(deprecated since C++11) |
template< class Res, class T > std::const_mem_fun_ref_t<Res,T> mem_fun_ref( Res (T::*f)() | (1) | (until C++17)(deprecated since C++11) |
template< class Res, class T, class Arg > std::mem_fun1_ref_t<Res,T,Arg> mem_fun_ref( Res (T::*f)(Arg) | (2) | (until C++17)(deprecated since C++11) |
template< class Res, class T, class Arg > std::const_mem_fun1_ref_t<Res,T,Arg> mem_fun_ref( S (T::*f)(Arg) | (2) | (until C++17)(deprecated since C++11) |
创建成员函数包装对象,从模板参数推断目标类型。包装器对象需要对类型对象的引用。T
作为它的第一个参数operator()
...
1%29有效呼叫std::mem_fun_ref_t<S,T>(f)或std::const_mem_fun_ref_t<S,T>(f)...
2%29有效呼叫std::mem_fun1_ref_t<S,T>(f)或std::const_mem_fun1_ref_t<S,T>(f)...
这个函数和相关的类型在C++11中被取消,在C++17中被删除,以支持更一般的std::mem_fn
和std::bind
,它们都从成员函数创建可调用适配器兼容的函数对象。
参数
f | - | pointer to a member function to create a wrapper for |
---|
返回值
函数对象包装f
...
例外
%280%29
注记
之间的区别std::mem_fun
和std::mem_fun_ref
前者产生一个函数包装器,期望一个指向对象的指针,而后者--一个引用。
例
用途STD::MEM[医]乐趣[医]引用绑定std::string%27s成员函数.size%28%29。
二次
#include <functional>
#include <vector>
#include <string>
#include <iterator>
#include <algorithm>
#include <iostream>
int main()
{
std::vector<std::string> v = {"once", "upon", "a", "time"};
std::transform(v.begin(), v.end(),
std::ostream_iterator<std::size_t>(std::cout, " "),
std::mem_fun_ref(&std::string::size)
}
二次
产出:
二次
4 4 1 4
二次
另见
mem_fun (until C++17) | creates a wrapper from a pointer to member function, callable with a pointer to object (function template) |
---|
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。
http://en.cppreference.com/w/cpp/实用程序/Functionalmem[医]乐趣[医]参考文献