title: Illegal token on right side of ::
body: <p>I have the following template declaration:</p>
  
  <pre><code>template &lt;typename T&gt;
     void IterTable(int&amp;                       rIdx,
                    std::vector&lt;double&gt;&amp;       rVarVector,
                    const std::vector&lt;T&gt;&amp;      aTable,
                    const T                    aValue,
                    T              aLowerBound = -(std::numeric_limits&lt;T&gt;::max()), //illegal token on right side of '::' shows here
                    bool                       aLeftOpen = true) const;
  </code></pre>
  
  <p>Which throws the illegal token error as noted, on the line with "-(std::numeric_limits::max())".  I got this code from some old linux source that I'm trying to compile on Windows.  Any idea what the issue is?</p>
  
  <p><strong>Edit:</strong> It also fails using min(), and the compiler output is:</p>
  
  <pre><code>Error   92  error C2589: '::' : illegal token on right side of '::' c:\projects\r&amp;d\prepaydll\include\cfcdefault.h  216 PrepayDLL
  
  Error   93  error C2059: syntax error : '::'    c:\projects\r&amp;d\prepaydll\include\cfcdefault.h  216 PrepayDLL
  </code></pre>
  
  <p>Line 216, is the line previously mentioned.</p>