0
#define SYNC_DATA_CB list<string> (*syncData)(void)

我想在我的类中有一个成员(静态与否无关紧要),它将保存对函数指针的引用。

我试图这样声明,但没有编译:

SyncProcess{
  public:
   SyncProcess(SYNC_DATA_CB);
   static SYNC_DATA_CB sync_cb_;
}
4

3 回答 3

1

我认为您可能正在寻找的是 typedef 。

typedef list<string>(*syncData)(void);

class SyncProcess{
  public:
   SyncProcess( syncData );
   static syncData sync_cb_;
};
于 2012-09-27T15:50:02.580 回答
0
std::function<list<string> (void)> myPointer;
于 2012-09-27T15:49:54.597 回答
0

使用 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_;
};
于 2012-09-27T15:50:45.563 回答