我需要將一個參數綁定到類成員函數。 事情是這樣的:std ::將參數綁定到沒有對象的成員函數
#include <functional>
#include <iostream>
struct test
{
void func(int a, int b)
{
std::cout << a << " " << b << std::endl;
}
};
int main(int argc, char** argv)
{
typedef void (test::*TFunc)(int);
TFunc func = std::bind(&test::func, 1, std::placeholders::_1);
}
但在這種情況下,我有編譯錯誤
error: static assertion failed: Wrong number of arguments for pointer-to
-member
您可能不應該期望'std :: bind'生成的對象可以轉換爲普通成員函數指針... – Quentin
如果您正在尋找一種基本上在類定義之外定義成員函數的方法,那麼這是無法完成的。您只能向該類添加重載或定義一個自由函數。 –