In file included from op-gm-gm.cc:30: op-gm-gm.cc: In function ‘void install_gm_gm_ops(octave::type_info&)’: /usr/local/include/octave-7.0.0/octave/../octave/ops.h:62:59: error: invalid conversion from ‘octave_value (*)(octave_base_value&, const octave_base_value&, const Array&)’ to ‘octave::type_info::cat_op_fcn’ {aka ‘octave_value (*)(const octave_base_value&, const octave_base_value&, const Array&)’} [-fpermissive] 62 | (t1::static_type_id (), t2::static_type_id (), CONCAT2 (oct_catop_, f)); | ^~~~~~~~~~ | | | octave_value (*)(octave_base_value&, const octave_base_value&, const Array&) /usr/local/include/octave-7.0.0/octave/../octave/ops.h:39:24: note: in definition of macro ‘CONCAT2X’ 39 | #define CONCAT2X(x, y) x ## y | ^ /usr/local/include/octave-7.0.0/octave/../octave/ops.h:62:50: note: in expansion of macro ‘CONCAT2’ 62 | (t1::static_type_id (), t2::static_type_id (), CONCAT2 (oct_catop_, f)); | ^~~~~~~ op-gm-gm.cc:158:3: note: in expansion of macro ‘INSTALL_CATOP_TI’ 158 | INSTALL_CATOP_TI (ti, octave_galois, octave_galois, gm_gm); | ^~~~~~~~~~~~~~~~ In file included from /usr/local/include/octave-7.0.0/octave/../octave/ov-fcn.h:38, from /usr/local/include/octave-7.0.0/octave/../octave/ov-builtin.h:35, from /usr/local/include/octave-7.0.0/octave/../octave/defun-int.h:33, from /usr/local/include/octave-7.0.0/octave/../octave/defun-dld.h:35, from /usr/local/include/octave-7.0.0/octave/../octave/oct.h:35, from op-gm-gm.cc:24: /usr/local/include/octave-7.0.0/octave/../octave/ov-typeinfo.h:123:53: note: initializing argument 3 of ‘bool octave::type_info::install_cat_op(int, int, octave::type_info::cat_op_fcn)’ 123 | bool install_cat_op (int t1, int t2, cat_op_fcn f) | ~~~~~~~~~~~^ In file included from op-gm-m.cc:25: op-gm-m.cc: In function ‘void install_gm_m_ops(octave::type_info&)’: /usr/local/include/octave-7.0.0/octave/../octave/ops.h:62:59: error: invalid conversion from ‘octave_value (*)(octave_base_value&, const octave_base_value&, const Array&)’ to ‘octave::type_info::cat_op_fcn’ {aka ‘octave_value (*)(const octave_base_value&, const octave_base_value&, const Array&)’} [-fpermissive] 62 | (t1::static_type_id (), t2::static_type_id (), CONCAT2 (oct_catop_, f)); | ^~~~~~~~~~ | | | octave_value (*)(octave_base_value&, const octave_base_value&, const Array&) /usr/local/include/octave-7.0.0/octave/../octave/ops.h:39:24: note: in definition of macro ‘CONCAT2X’ 39 | #define CONCAT2X(x, y) x ## y | ^ /usr/local/include/octave-7.0.0/octave/../octave/ops.h:62:50: note: in expansion of macro ‘CONCAT2’ 62 | (t1::static_type_id (), t2::static_type_id (), CONCAT2 (oct_catop_, f)); | ^~~~~~~ op-gm-m.cc:132:3: note: in expansion of macro ‘INSTALL_CATOP_TI’ 132 | INSTALL_CATOP_TI (ti, octave_galois, octave_matrix, gm_m); | ^~~~~~~~~~~~~~~~ In file included from /usr/local/include/octave-7.0.0/octave/../octave/ov-fcn.h:38, from /usr/local/include/octave-7.0.0/octave/../octave/ov-builtin.h:35, from /usr/local/include/octave-7.0.0/octave/../octave/defun-int.h:33, from /usr/local/include/octave-7.0.0/octave/../octave/defun-dld.h:35, from /usr/local/include/octave-7.0.0/octave/../octave/oct.h:35, from op-gm-m.cc:24: /usr/local/include/octave-7.0.0/octave/../octave/ov-typeinfo.h:123:53: note: initializing argument 3 of ‘bool octave::type_info::install_cat_op(int, int, octave::type_info::cat_op_fcn)’ 123 | bool install_cat_op (int t1, int t2, cat_op_fcn f) | ~~~~~~~~~~~^ In file included from op-gm-s.cc:30: op-gm-s.cc: In function ‘octave_value oct_catop_gm_s(const octave_base_value&, const octave_base_value&, const Array&)’: galois-ops.h:26:11: error: cannot ‘dynamic_cast’ ‘a1’ (of type ‘const class octave_base_value’) to type ‘class octave_galois&’ (conversion casts away constness) 26 | t1 v1 = dynamic_cast (a1); \ | ^~~~~~~~~~~~~~~~~~~~~ op-gm-s.cc:71:3: note: in expansion of macro ‘CAST_BINOP_ARGS’ 71 | CAST_BINOP_ARGS (octave_galois&, const octave_scalar&); | ^~~~~~~~~~~~~~~ In file included from op-m-gm.cc:25: op-m-gm.cc: In function ‘void install_m_gm_ops(octave::type_info&)’: /usr/local/include/octave-7.0.0/octave/../octave/ops.h:62:59: error: invalid conversion from ‘octave_value (*)(octave_base_value&, const octave_base_value&, const Array&)’ to ‘octave::type_info::cat_op_fcn’ {aka ‘octave_value (*)(const octave_base_value&, const octave_base_value&, const Array&)’} [-fpermissive] 62 | (t1::static_type_id (), t2::static_type_id (), CONCAT2 (oct_catop_, f)); | ^~~~~~~~~~ | | | octave_value (*)(octave_base_value&, const octave_base_value&, const Array&) /usr/local/include/octave-7.0.0/octave/../octave/ops.h:39:24: note: in definition of macro ‘CONCAT2X’ 39 | #define CONCAT2X(x, y) x ## y | ^ /usr/local/include/octave-7.0.0/octave/../octave/ops.h:62:50: note: in expansion of macro ‘CONCAT2’ 62 | (t1::static_type_id (), t2::static_type_id (), CONCAT2 (oct_catop_, f)); | ^~~~~~~ op-m-gm.cc:133:3: note: in expansion of macro ‘INSTALL_CATOP_TI’ 133 | INSTALL_CATOP_TI (ti, octave_matrix, octave_galois, m_gm); | ^~~~~~~~~~~~~~~~ In file included from /usr/local/include/octave-7.0.0/octave/../octave/ov-fcn.h:38, from /usr/local/include/octave-7.0.0/octave/../octave/ov-builtin.h:35, from /usr/local/include/octave-7.0.0/octave/../octave/defun-int.h:33, from /usr/local/include/octave-7.0.0/octave/../octave/defun-dld.h:35, from /usr/local/include/octave-7.0.0/octave/../octave/oct.h:35, from op-m-gm.cc:24: /usr/local/include/octave-7.0.0/octave/../octave/ov-typeinfo.h:123:53: note: initializing argument 3 of ‘bool octave::type_info::install_cat_op(int, int, octave::type_info::cat_op_fcn)’ 123 | bool install_cat_op (int t1, int t2, cat_op_fcn f) | ~~~~~~~~~~~^