Question: I've seen this code for finding a Minor of a matrix:

```
RegMatrix RegMatrix::Minor(const int row, const int col)const{
  //printf("minor(row=%i, col=%i), rows=%i, cols=%i\n", row, col, rows, cols);
 assert((row >= 0) && (row < numRow) && (col >= 0) && (col < numCol));

 RegMatrix result(numRow-1,numCol-1);

 // copy the content of the matrix to the minor, except the selected
    for (int r = 0; r < (numRow - (row >= numRow)); r++){
  for (int c = 0; c < (numCol - (col > numCol)); c++){
   //printf("r=%i, c=%i, value=%f, rr=%i, cc=%i \n", r, c, p[r-1][c-1], r - (r > row), c - (c > col));
   result.setElement(r - (r > row), c - (c > col),_matrix[r-1][c-1]);
  }
 }
     return result;
}

```

This is the first time I encounter a code line like this: r < (numRow - (row >= numRow)).

What does this mean?

Answer: 
A somewhat clearer way to express it might be:

`r < (row >= numRow ? numRow - 1 : numRow)`
The result of using a comparison operator is either a `true` of `false` which when used as an integer is `1` or `0`.

`r < (numRow - (row >= numRow))` 

is same as 

`r < (numRow - 1)` if `(row >= numRow)` 

else it is `r < numRow`