#define SYNC_DATA_CB list<string> (*syncData)(void)
我希望在我的班级中有一个成员(静态或不是无关紧要的),它将保存对函数指针的引用。
我试图像这样声明,但没有编译:
SyncProcess{
public:
SyncProcess(SYNC_DATA_CB);
static SYNC_DATA_CB sync_cb_;
}
答案 0 :(得分:1)
我认为你可能正在寻找的是一个typedef。
typedef list<string>(*syncData)(void);
class SyncProcess{
public:
SyncProcess( syncData );
static syncData sync_cb_;
};
答案 1 :(得分:0)
std::function<list<string> (void)> myPointer;
答案 2 :(得分:0)
使用typedef而不是macro:
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_;
};