溫馨提示×

如何通過std::invoke調用成員函數指針

c++
小樊
102
2024-08-16 10:50:33
欄目: 編程語言

要通過std::invoke調用成員函數指針,可以使用std::mem_fn將成員函數指針轉換為可調用對象。例如:

#include <functional>
#include <iostream>

struct Foo {
    int data = 10;
    void memberFunction(int value) {
        std::cout << "data: " << data << ", value: " << value << std::endl;
    }
};

int main() {
    Foo foo;

    auto memFn = std::mem_fn(&Foo::memberFunction);
    std::invoke(memFn, foo, 20);

    return 0;
}

在上面的示例中,我們定義了一個結構體Foo,其中包含一個成員函數memberFunction和一個成員變量data。然后使用std::mem_fnFoo::memberFunction轉換為可調用對象memFn,最后使用std::invoke調用成員函數指針并傳遞實例對象foo和參數20。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女