【发布时间】:2015-02-11 02:52:01
【问题描述】:
我的类结构定义如下:
#include <limits>
struct heapStatsFilters
{
heapStatsFilters(size_t minValue_ = 0, size_t maxValue_ = std::numeric_limits<size_t>::max())
{
minMax[0] = minValue_; minMax[1] = maxValue_;
}
size_t minMax[2];
};
问题是我不能使用 'std::numeric_limits::max()' 并且编译器说:
Error 8 error C2059: syntax error : '::'
Error 7 error C2589: '(' : illegal token on right side of '::'
我使用的编译器是 Visual C++ 11 (2012)
【问题讨论】:
-
无法复制。尝试包括
<cstddef>。 -
@ParkYoung-Bae 我没有在我的代码中使用 std 作为 size_t 。我应该这样做吗?
-
@remyabel 您使用的是哪个编译器?我正在使用 Visual C++ 11 (2012)
-
检查您是否有
#define max(a,b)或类似的地方,或在struct ifxHeapStatsFilters之前添加#undef max以检查是否是这里的问题 -
@PiotrS。是的!你说的对!有效! :)
标签: c++ visual-c++ syntax syntax-error numeric-limits