title: ‘ULONG_MAX’ was not declared in this scope
body: <p>I am getting this error while compiling a cpp file in GCC 4.8.1 in ubuntu</p>
  
  <p>‘ULONG_MAX’ was not declared in this scope'</p>
  
  <p>the code am trying to compile</p>
  
  <p>header included</p>
  
  <pre><code>#include &lt;algorithm&gt;
  #include &lt;map&gt;
  #include &lt;set&gt;
  #include &lt;iostream&gt;
  #include &lt;cstdlib&gt;
  #include &lt;cerrno&gt;
  #include &lt;cstring&gt;
  
  
  
  bool parser&lt;unsigned&gt;::parse(Option &amp;O, const char *ArgName,
                               const std::string &amp;Arg, unsigned &amp;Value) {
    char *End;
    errno = 0; 
    unsigned long V = strtoulul(Arg.c_str(), &amp;End, 0);
    Value = (unsigned)V;
    if (((V == ULONG_MAX) &amp;&amp; (errno == ERANGE)) || (*End != 0) || (Value != V))
      return O.error(": '" + Arg + "' value invalid for uint argument!");
    return false;
  }
  </code></pre>
  
  <p>I tried the help from the link
  <a href="https://stackoverflow.com/questions/3233054/error-int32-max-was-not-declared-in-this-scope">error: &#39;INT32_MAX&#39; was not declared in this scope</a>
  but I couldn't match to my case</p>