When compiling a large software package from USGS (called ISIS3) on FreeBSD using CLANG (3.1 and 3.2 on FreeBSD 9.1-PRE and 10.0-CUR, respectively) I receive the following sjowed nasty and sticky error.
Compiling the same code with gcc-4.6 works fine, but I guess this is due
to a loose syntax handling of gcc 4.6 C++ compared to CLANG C++, the
latter seems to be very restrictive in checking syntaxes.
Before filing an PR (people do not want to have simple PRs filed
regarding CLANG problems, they reuqest solutions/fixes), I'd like to ask
whether someone has come across this. My C++ knowledge is limited!
[...]
In file included from /usr/local/include/tnt/jama_lu.h:4:
In file included from /usr/local/include/tnt/tnt.h:55:
/usr/local/include/tnt/tnt_sparse_matrix_csr.h:97:3: error: no matching
constructor for initialization of 'Array1D<int>'
rowptr_(M, r), colind_(nz, c), dim1_(M), dim2_(N) {}
^ ~~~~
/usr/local/include/tnt/tnt_array1d.h:63:11: note: candidate constructor
not viable: no known conversion from 'const int *' to 'const int' for
2nd argument;
dereference the argument with *
Array1D(int n, const T &a);
^
/usr/local/include/tnt/tnt_array1d.h:64:11: note: candidate constructor
not viable: 2nd argument ('const int *') would lose const qualifier
Array1D(int n, T *a);
^
/usr/local/include/tnt/tnt_array1d.h:61:11: note: candidate constructor
not viable: requires 0 arguments, but 2 were provided
Array1D();
^
/usr/local/include/tnt/tnt_array1d.h:62:11: note: candidate constructor
not viable: requires single argument 'n', but 2 arguments were provided
explicit Array1D(int n);
^
/usr/local/include/tnt/tnt_array1d.h:65:14: note: candidate constructor
not viable: requires single argument 'A', but 2 arguments were provided
inline Array1D(const Array1D &A);
[...]
signature.asc
Description: OpenPGP digital signature
