сабж не собирается с octave-3.4.0. часть косяков подправил, что с нижеследующими делать - не знаю:
galois.cc: In member function 'boolMatrix galois::all(int) const': galois.cc:715:61: error: no matching function for call to 'do_mx_red_op(const galois&, int&, <unresolved overloaded function type>)' /usr/include/octave-3.4.0/octave/../octave/mx-inlines.cc:1141:1:
note: candidate is: Array<T> do_mx_red_op(const Array<X>&, int, void (*)(const T*, R*, octave_idx_type, octave_idx_type, octave_idx_type)) [with R = boolMatrix, T = int, octave_idx_type = int]
galois.cc: In member function 'boolMatrix galois::any(int) const': galois.cc:721:61: error: no matching function for call to 'do_mx_red_op(const galois&, int&, <unresolved overloaded function type>)' /usr/include/octave-3.4.0/octave/../octave/mx-inlines.cc:1141:1:
note: candidate is: Array<T> do_mx_red_op(const Array<X>&, int, void (*)(const T*, R*, octave_idx_type, octave_idx_type, octave_idx_type)) [with R = boolMatrix, T = int, octave_idx_type = int]
проблемный код:
boolMatrix
galois::all (int dim) const
{
return do_mx_red_op<boolMatrix> (*this, dim, mx_inline_all);
}
boolMatrix
galois::any (int dim) const
{
return do_mx_red_op<boolMatrix> (*this, dim, mx_inline_any);
}
ф-ия do_mx_red_op:
template <class R, class T>
inline Array<R>
do_mx_red_op (const Array<T>& src, int dim,
void (*mx_red_op) (const T *, R *, octave_idx_type,
octave_idx_type, octave_idx_type))
{
octave_idx_type l, n, u;
dim_vector dims = src.dims ();
// M*b inconsistency: sum([]) = 0 etc.
if (dims.length () == 2 && dims(0) == 0 && dims(1) == 0)
dims (1) = 1;
get_extent_triplet (dims, dim, l, n, u);
// Reduction operation reduces the array size.
if (dim < dims.length ()) dims(dim) = 1;
dims.chop_trailing_singletons ();
Array<R> ret (dims);
mx_red_op (src.data (), ret.fortran_vec (), l, n, u);
return ret;
}
что ему не нравится и как это вылечить?