现在我在协议缓冲区中定义了一条消息
message Test
{
enum OperationFlag
{
ADD = 0;
DELETE = 1;
}
optional OperationFlag flag = 1;
}
在遵守protoc
(版本2.5.0)后,将生成头文件。但是,以下行
syntax error : 'constant'
static const OperationFlag DELETE = Test_OperationFlag_DELETE;
经过调查,我发现DELETE
WinNT.h
已经声明了
#define DELETE (0x00010000L)
似乎DELETE
无法在协议缓冲区中声明?我对吗?或者是否有任何其他关键词不能用于协议缓冲区?
答案 0 :(得分:1)
如果您不使用WinNT.h中的DELETE
,则可以使用#undef
取消定义:
#include "windows.h"
#undef DELETE
....
static const OperationFlag DELETE = Test_OperationFlag_DELETE;