#define SYNC_DATA_CB list<string> (*syncData)(void)
我想在我的类中有一个成员(静态与否无关紧要),它将保存对函数指针的引用。
我试图这样声明,但没有编译:
SyncProcess{
public:
SyncProcess(SYNC_DATA_CB);
static SYNC_DATA_CB sync_cb_;
}
#define SYNC_DATA_CB list<string> (*syncData)(void)
我想在我的类中有一个成员(静态与否无关紧要),它将保存对函数指针的引用。
我试图这样声明,但没有编译:
SyncProcess{
public:
SyncProcess(SYNC_DATA_CB);
static SYNC_DATA_CB sync_cb_;
}
我认为您可能正在寻找的是 typedef 。
typedef list<string>(*syncData)(void);
class SyncProcess{
public:
SyncProcess( syncData );
static syncData sync_cb_;
};
std::function<list<string> (void)> myPointer;
使用 typedef 而不是宏:
class SyncProcess
{
public:
// Typedef to create function pointer alias SyncDataFunc
typedef list<string>(*SyncDataFunc)();
// Use alias as input parameter type
SyncProcess(SyncDataFunc func);
// Use alias as static member type
static SyncDataFunc sync_cb_;
};