gpt4 book ai didi

c++ - 将 "this"参数显式传递给方法调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:45 29 4
gpt4 key购买 nike

是否可以在 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::bind(&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)...); }

关于c++ - 将 "this"参数显式传递给方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20423922/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com