定義我在CPP像如何創建一個類的成員函數funtion對象,在宏觀
#define DECLARE_some(name, argType, returnType) \
class myclass##name : public Service::ServiceRpcHandler<a, r> { \
public: \
myclass##name(Service *); \
CONST_STRING getName() const override;\
void operator()(Service::ServiceRpcHandler<a, r>::type *); \
};#decleration
#define IMPLEMENT_Some(name, argType, returnType) \
class myclass##name::myclass##name(Service * owner) : Service::ServiceRpcHandler<a, r>(o) { } \
CONST_STRING myclass##name::getName() const { return #name; }\
void myclass##name::operator()(Service::ServiceRpcHandler<a, r>::type * twk)#implementation of a declared macro
所有我只是想爲創建一個函數對象void myclass##name::operator()(Service::ServiceRpcHandler<a, r>::type * twk)
。我已經認識到myclass##name::operator()
本身是一個仿函數但我無論如何要做出一個又一個像`的std ::功能<(?)(?)>
我已編輯的評論的一個建議
您需要顯示如何使用此宏的[mcve],因爲使用標記粘貼操作符「##」粘貼「class」和「name」沒有任何意義。 –
@山姆,謝謝你是我編輯的錯字 –