I was trying compile this program:

Code:
template <int *p>
class X { };

int array[3] = {56, 56, 45};
int *p = array+1;
X<p> x;
but Comeau is still displaying this error:

expression must have a constant value

In my opinion there is no difference between array element's address and variable's address...