c++ - 如何不使用“instance.function()”将“this”指针发送到函数?
问题描述
我可以不使用.
运算符将实例发送到函数吗?
例如:
// header file
class A
{
public:
void foo() {std::cout << "Hello" << std::endl;}
};
// main file
A instance = new A;
instance.foo();
// instead do something like this
A::foo(instance);
我可以做这样的事情吗?
解决方案
是的,您可以间接通过std::invoke
:
#include <functional>
#include <iostream>
struct A {
void foo() {
std::cerr << "hi\n";
}
};
int main() {
A a;
std::invoke(&A::foo,a);
}
但是std::invoke
' 的实现可能会在内部仅应用.*
运算符。
推荐阅读
- jquery - Woocommerce 结帐字段 jQuery appendTo
- aurelia - Aurelia 通过调用 HTML 中的函数来修改文本
- ios - Dateformatter 返回零日期
- plot - 加宽 x 轴 seaborn
- c# - .NET 核心的简单注入器 Web API 集成包?
- youtube - NID cookie for youtube-nocookie.com
- angularjs - 在 angularjs-gridster 单元格中显示图像
- android - 使用改造 2 上传文件 - 文件正在上传,但在“onFailure”响应
- django - Django 如何使用带有静态/模板的 npm 模块
- c# - 使用 VSTS Git API 创建初始推送到新创建的存储库