C++ VS2008下的协议缓冲区错误C2059
现在我在协议缓冲区中定义了一条消息C++ VS2008下的协议缓冲区错误C2059,c++,protocol-buffers,C++,Protocol Buffers,现在我在协议缓冲区中定义了一条消息 message Test { enum OperationFlag { ADD = 0; DELETE = 1; } optional OperationFlag flag = 1; } 遵循协议(版本2.5.0)后,将生成头文件。但是,有一个错误语法错误:“constant”用于下一行 static const OperationFlag DELETE = Test_OperationFlag
message Test
{
enum OperationFlag
{
ADD = 0;
DELETE = 1;
}
optional OperationFlag flag = 1;
}
遵循协议
(版本2.5.0)后,将生成头文件。但是,有一个错误语法错误:“constant”
用于下一行
static const OperationFlag DELETE = Test_OperationFlag_DELETE;
经过调查,我发现DELETE
已经在WinNT.h
#define DELETE (0x00010000L)
似乎
DELETE
无法在协议缓冲区中声明?我说得对吗?或者是否有其他关键字不能在协议缓冲区中使用?如果不使用WinNT.h中的删除,则可以使用#undef
将其取消定义:
#include "windows.h"
#undef DELETE
....
static const OperationFlag DELETE = Test_OperationFlag_DELETE;