C++ ‘;ULONG_MAX’;未在此范围中声明

C++ ‘;ULONG_MAX’;未在此范围中声明,c++,C++,我在ubuntu的GCC4.8.1中编译cpp文件时遇到这个错误 “ULONG_MAX”未在此范围内声明” 我正在试图编译代码 包括页眉 #include <algorithm> #include <map> #include <set> #include <iostream> #include <cstdlib> #include <cerrno> #include <cstring> bool pars

我在ubuntu的GCC4.8.1中编译cpp文件时遇到这个错误

“ULONG_MAX”未在此范围内声明”

我正在试图编译代码

包括页眉

#include <algorithm>
#include <map>
#include <set>
#include <iostream>
#include <cstdlib>
#include <cerrno>
#include <cstring>



bool parser<unsigned>::parse(Option &O, const char *ArgName,
                             const std::string &Arg, unsigned &Value) {
  char *End;
  errno = 0; 
  unsigned long V = strtoulul(Arg.c_str(), &End, 0);
  Value = (unsigned)V;
  if (((V == ULONG_MAX) && (errno == ERANGE)) || (*End != 0) || (Value != V))
    return O.error(": '" + Arg + "' value invalid for uint argument!");
  return false;
}
#包括

但是我无法匹配我的案例

ULONG_MAX
limits.h
头文件中定义。把
#include
和其他include放在一起应该可以解决这个问题。

你需要标题
你可能想更现代一些。将来,你被否决的原因是,在谷歌中键入
ULONG_MAX
会立即给你一个答案。@Tartan:关于你的评论(而且是针对下层选民,而不是你):Stack Overflow的使命是成为与编程和开发相关的答案的存储库。Google回答什么都不重要。事实上,Google在我搜索Stack Overflow时,将这个Stack Overflow问题作为头号热门问题返回。Conference,。失败的投票者只是典型的无知和固执己见的Stack Overflow成员,他们将无论消息有多无用(很像下面的消息:)@Biffen-
数值限制
不是“编译时常量”或代码< > COXECPRP</代码>。Clang不会在你希望的某些条件下正确地优化它们。我相信你需要<代码>定义> <代码>以获得最佳性能。我相信在尝试使用<代码> <代码>时,有一些C++版本要求值得尊重。