std :: tr1 :: mem_fn返回类型

Tar*_*ula 5 c++ tr1 std

我想把结果这个:

std::tr1::mem_fn(&ClassA::method);
Run Code Online (Sandbox Code Playgroud)

在变量内部,这个变量的类型是什么?

这看起来像这样:

MagicalType fun = std::tr1::mem_fn(&ClassA::method);
Run Code Online (Sandbox Code Playgroud)

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

谢谢 !

Jam*_*lis 5

返回两种类型的std::tr1::mem_fnstd::tr1::bind未指定.

您可以将结果存储std::tr1::bindstd::tr1::function:

struct ClassA { 
    void Func() { }
};

ClassA obj;
std::tr1::function<void()> bound_memfun(std::tr1::bind(&ClassA::Func, obj));
Run Code Online (Sandbox Code Playgroud)

您还可以将结果存储std::tr1::mem_fnstd::tr1::function:

std::tr1::function<void(ClassA&)> memfun_wrap(std::tr1::mem_fn(&ClassA::Func));
Run Code Online (Sandbox Code Playgroud)