c++ - std::tr1::mem_fn 返回类型

标签 c++ std tr1

我想把这个结果:

std::tr1::mem_fn(&ClassA::method);

在一个变量中,这个变量的类型是什么?

看起来像这样:

MagicalType fun = std::tr1::mem_fn(&ClassA::method);

此外,std::tr1::bind 的结果类型是什么?

谢谢!

最佳答案

未指定 std::tr1::mem_fnstd::tr1::bind 的返回类型。

您可以将 std::tr1::bind 的结果存储在 std::tr1::function 中:

struct ClassA { 
    void Func() { }
};

ClassA obj;
std::tr1::function<void()> bound_memfun(std::tr1::bind(&ClassA::Func, obj));

您还可以将 std::tr1::mem_fn 的结果存储在 std::tr1::function 中:

std::tr1::function<void(ClassA&)> memfun_wrap(std::tr1::mem_fn(&ClassA::Func));

关于c++ - std::tr1::mem_fn 返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3390385/

相关文章:

c++ - 在这种情况下如何从结构中输入字符串数组?

C++ 仿函数绑定(bind)

c++ - 在保留原始顺序的同时删除/删除多个 std::vector 元素的最有效方法?

c++ - c++中没有timeout_exception吗?

c++ - 为什么这个正则表达式不适用于 c++ TR1?

c++ - 为什么 std::tr1::shared_ptr<>.reset() 如此昂贵?

javascript - 如何像JS中的方括号表示法一样动态调用C++中的属性名称?

c++ - C++中构造函数如何选择基类构造函数

c++ - 使用 std::forward 除了将参数转发到另一个函数之外

c++ - 使用 Boost.TR1 替换 native VS 2010 (VC10) tr1 库