Mercurial > hg > octave-nkf
diff src/ov-typeinfo.cc @ 3203:bc61b0e8d60e
[project @ 1998-10-30 20:26:27 by jwe]
author | jwe |
---|---|
date | Fri, 30 Oct 1998 20:26:31 +0000 |
parents | 3ac3e8edc258 |
children | c3eed8ac845a |
line wrap: on
line diff
--- a/src/ov-typeinfo.cc +++ b/src/ov-typeinfo.cc @@ -44,6 +44,12 @@ #include <Array2.cc> #include <Array3.cc> +template class Array<unary_op_fcn>; +template class Array2<unary_op_fcn>; + +template class Array<non_const_unary_op_fcn>; +template class Array2<non_const_unary_op_fcn>; + template class Array<binary_op_fcn>; template class Array2<binary_op_fcn>; template class Array3<binary_op_fcn>; @@ -80,6 +86,23 @@ } bool +octave_value_typeinfo::register_unary_op (octave_value::unary_op op, + int t, unary_op_fcn f) +{ + return (instance_ok ()) + ? instance->do_register_unary_op (op, t, f) : false; +} + +bool +octave_value_typeinfo::register_non_const_unary_op (octave_value::unary_op op, + int t, + non_const_unary_op_fcn f) +{ + return (instance_ok ()) + ? instance->do_register_non_const_unary_op (op, t, f) : false; +} + +bool octave_value_typeinfo::register_binary_op (octave_value::binary_op op, int t1, int t2, binary_op_fcn f) @@ -138,6 +161,13 @@ types.resize (len, string ()); + unary_ops.resize (static_cast<int> (octave_value::num_unary_ops), + len, static_cast<unary_op_fcn> (0)); + + non_const_unary_ops.resize + (static_cast<int> (octave_value::num_unary_ops), + len, static_cast<non_const_unary_op_fcn> (0)); + binary_ops.resize (static_cast<int> (octave_value::num_binary_ops), len, len, static_cast<binary_op_fcn> (0)); @@ -160,6 +190,24 @@ } bool +octave_value_typeinfo::do_register_unary_op (octave_value::unary_op op, + int t, unary_op_fcn f) +{ + unary_ops.checkelem (static_cast<int> (op), t) = f; + + return false; +} + +bool +octave_value_typeinfo::do_register_non_const_unary_op + (octave_value::unary_op op, int t, non_const_unary_op_fcn f) +{ + non_const_unary_ops.checkelem (static_cast<int> (op), t) = f; + + return false; +} + +bool octave_value_typeinfo::do_register_binary_op (octave_value::binary_op op, int t1, int t2, binary_op_fcn f) @@ -208,6 +256,19 @@ #include <iostream.h> +unary_op_fcn +octave_value_typeinfo::do_lookup_unary_op (octave_value::unary_op op, int t) +{ + return unary_ops.checkelem (static_cast<int> (op), t); +} + +non_const_unary_op_fcn +octave_value_typeinfo::do_lookup_non_const_unary_op + (octave_value::unary_op op, int t) +{ + return non_const_unary_ops.checkelem (static_cast<int> (op), t); +} + binary_op_fcn octave_value_typeinfo::do_lookup_binary_op (octave_value::binary_op op, int t1, int t2)