【发布时间】:2014-07-25 02:01:50
【问题描述】:
对于给定的结构:
struct foo
{
void fooFunc(){}
int fooVar = 0;
};
我可以为函数创建一个调用 wapper:std::mem_fn( &foo::fooFunc ),这样我就可以将它传递给另一个方法并在对象上调用它。
我想知道是否有类似的调用包装器,但用于成员变量。
例如,我在这里使用指向成员变量的指针,但我想使用调用包装器:
void bar( std::function< void( foo ) > funcPtr, int foo::* varPtr )
{
foo myFoo;
funcPtr( myFoo );
foo.*varPtr = 13;
}
【问题讨论】:
-
@WilliamAndrewMontgomery 实际上我已经查看了C++: Pointer to class data member 没有 STL 构造。
-
成员变量指针不是“C风格”。
-
您的问题中没有任何内容来自“STL”
-
你想完成什么?
-
C 不支持指向成员的指针,因此将其称为 C 风格绝对不是最清楚的表达方式!您想要的术语是
mem_fn返回的“调用包装器”和int foo::*的“指向成员的指针”
标签: c++ c++11 wrapper member-pointers mem-fun