title: macro "max" requires 2 arguments, but only 1 given
body: <pre><code>template &lt;class T&gt;
  struct scalar_log_minimum {
  public:
      typedef T value_type;
      typedef T result_type;
      static
          result_type initial_value(){
              return std::log(std::numeric_limits&lt;result_type&gt;::max());
      }
      static
          void update(result_type&amp; t, const value_type&amp; x){
              if ( (x&gt;0) &amp;&amp; (std::log(x)&lt;t) ) t = std::log(x);
      }
  };
  </code></pre>
  
  <p>i got the following error while trying to compile the above:</p>
  
  <p>functional_ext.hpp:55:59: macro "max" requires 2 arguments, but only 1 given</p>
  
  <p>max is not a macro, right? Then what is this error? BTW, I am using visual studio 2005</p>
  
  <p>Also what is 55:59 --- 55 is the line number 59?</p>