title: '_comp' cannot be used as a function error
body: <p>I am getting "'_comp' cannot be used as a function" error in the stl_algobase.h header file. Here is my code and the part of the header file that is supposed to have the error.
  code:</p>
  
  <pre><code>#include&lt;iostream&gt;
  #include&lt;algorithm&gt;
  
  using namespace std;
  
  void subsqr(int a[10][10]){
      //int s[][10];
      for(int i =1;i&lt;5;i++){
          for(int j = 1;j&lt;5;j++){
              if(a[i][j] == 1){
                  a[i][j] = min(a[i][j-1], a[i-1][j],a[i-1][j-1]) + 1;
              }
          }
      }
      for(int i=0;i&lt;5;i++){
          for(int j=0;j&lt;5;j++){
              cout&lt;&lt;a[i][j]&lt;&lt;"\t";
          }
          cout&lt;&lt;endl;
      }
  }
  
  int main(){
      int a[10][10] = {{0,1,1,0,1}, {1,1,0,1,0}, {1,1,1,0}, {1,1,1,1,0}, {1,1,1,1,1}, {0,0,0,0,0}};
  
      subsqr(a);  
      return 0;
  }
  </code></pre>
  
  <p>stl_algobase.h:</p>
  
  <pre><code> template&lt;typename _Tp, typename _Compare&gt;
      inline const _Tp&amp;
      min(const _Tp&amp; __a, const _Tp&amp; __b, _Compare __comp)
      {
        //return __comp(__b, __a) ? __b : __a;
        if (__comp(__b, __a))
              return __b;
        return __a;
      }
  </code></pre>
  
  <p>The compiler says that the error is in the line</p>
  
  <pre><code>if (__comp(__b, __a))
  </code></pre>