"this"参数显式传递给方法调用
Explicit passing "this" parameter to method call
在c++中,是否可以显式地首先向类方法传递"this"参数?
类似这样的东西:
struct A
{
void some() {}
};
....
A a;
A::some(&a); // ~ a.some();
对于合理的问题"为什么?":我需要实现std::bind类似物,它可以很好地与以下结构配合使用:
void f(int);
bind(f, 3);
但这不起作用:
bind(&A::some, &a);
更新:伙计们,我的问题显然不是很清楚。我知道如何使用std::bind,我想知道它是如何处理这个参数显式传递给它的构造的:std::绑定(&A::some,&A);
以下是一个可以在bind
:中使用的调度器的想法
template <class R, class... Arg>
R call(R (*f)(Arg...), Arg &&... arg)
{ return f(std::forward<Arg>(arg)...); }
template <class C, class R, class... Arg>
R call(R (C::*f)(Arg...), C &c, Arg &&... arg)
{ return (c.*f)(std::forward<Arg>(arg)...); }
您想要以下内容吗?
struct A
{
void some();
static void some(A* that) { that->some(); }
};
..
A a;
A::some(&a);
相关文章:
- 如何强制从重写方法调用重写的方法基方法?
- C++:使用方法调用析构函数的顺序是什么?
- 派生类调用父类的方法,该方法调用重写的虚拟方法调用错误的方法
- 使用 object 中的方法调用带有 std::bind 和 std::function.target 的 C 样式函数
- 指向类方法调用的指针
- 如何使用 SFINAE 在方法调用中有条件地定义变量?
- 是否有可以处理方法调用依赖关系的设计模式?
- 如何缩短C++中的方法调用?
- 从部分专用模板方法调用模板非静态方法
- 有没有办法禁止派生类中的基类方法调用?
- 为什么这C++只在编译器上编码一个不明确的方法调用Microsoft?
- 从父方法调用子方法
- 如何将子方法调用到父方法
- 虚拟函数在哪里使用 vpointer to vtable 来解析方法调用,非虚拟方法存储在哪里以及如何解析它们?
- 从静态方法调用静态函数指针
- 从同一类中的另一个方法调用方法时出错
- 方法调用意外地像 l 值一样起作用
- 无法从派生的一个方法调用基类方法
- 从类方法调用命名空间中名为 Same 的函数时,重载解析失败
- C 多线程JAVA JNI方法调用