Main Class
#if defined(CONFIG_SOCKET)
template<class T>
class cUI_ScrData :public GFX_Socket
#elif defined(CONFIG_QUEUE)
template<class T>
class cUI_ScrData :public cUI_MQueueTx
#else
#endif
{
bool data_changed;
public:
T data;
UINT32 id;
void set_data(T& new_data)
{
// Some Code
}
};
套接字类
class GFX_Socket
{
GFX_SocketImpl *gfxSocketImplObj;
public:
GFXSOCKETVSPROJ_API void Client_start();
GFXSOCKETVSPROJ_API void Client_read();
GFX_Socket();
~GFX_Socket();
void ServerWrite(void *msgbuff, int size);
void Client_start();
void Client_read();
#endif
static bool bClientStarted;
};
队列类
class cUI_MQueueTx
{
private:
mqd_t queue;
char ucaQueueName[QUEUE_NAME_STR_MAX_LEN];
public:
cUI_MQueueTx();
~cUI_MQueueTx();
void UI_Q_create();
};
创建从两个不同类派生的模板类时收到此错误。 编译器在主类中 #endif 后指向"{"。
如果预处理器转到 #else,您的代码将无效。