std::numeric_limits::max和宏定义重复报错问题问题描述今天在编译Beckhoff ADS开源组件的时候发现编译报错,报错代码如下long AdsDevice::ReadReqEx2(uint32_t group, uint32_t offset, size_t length, void* buffer, uint32_t* bytesRead) const {if (length > std::numeric_limits<uint32_t>::max()) {...
今天在编译Beckhoff ADS开源组件的时候发现编译报错,报错代码如下{ if (length > std::numeric_limits<uint32_t>::max()) { return ADSERR_DEVICE_INVALIDSIZE; } return AdsSyncReadReqEx2(*m_LocalPort, &m_Addr, group, offset, static_cast<uint32_t>(length), buffer, bytesRead); } 报错信息erro...
原因:STL的numeric_limits::max()和VC6 min/max 宏冲突问题。 问题应该是以上两个头文件的宏定义出现了冲突。 解决:通过括号“()”来避免预编译器报错。int max =(std::numeric_limits<std::streamsize>::max)(); 即可。