line 35: vnl_cross_product_matrix(const vnl_double_3& v) { set(v.data_block()); }

caused an implicit conversion problem:

error: call of overloaded ‘vnl_cross_product_matrix(vnl_vector_fixed<double, 3u>)’ is
ambiguous

note: candidates are: vnl_cross_product_matrix::vnl_cross_product_matrix(const vnl_vector<double>&)

note: vnl_cross_product_matrix::vnl_cross_product_matrix(const vnl_double_3&)

This may cause a problem to users relying on the implicit conversion between vnl_vector_fixed and vnl_vector when the code goes to final release.

Possible fix may be to introduce an explicit constructor with vnl_vector_fixed doing the conversion within it, or just a vnl_vector_fixed version of the constructor.

Dominic