comparison src/ov-typeinfo.cc @ 2926:66ef74ee5d9f

[project @ 1997-05-05 03:20:52 by jwe]
author jwe
date Mon, 05 May 1997 03:40:21 +0000
parents 05926e1b367d
children 38de16594cb4
comparison
equal deleted inserted replaced
2925:f0665dac8e33 2926:66ef74ee5d9f
54 template class Array3<assign_op_fcn>; 54 template class Array3<assign_op_fcn>;
55 55
56 template class Array<type_conv_fcn>; 56 template class Array<type_conv_fcn>;
57 template class Array2<type_conv_fcn>; 57 template class Array2<type_conv_fcn>;
58 58
59 bool
60 octave_value_typeinfo::instance_ok (void)
61 {
62 bool retval = true;
63 if (! instance)
64 instance = new octave_value_typeinfo ();
65
66 if (! instance)
67 {
68 ::error ("unable to create value type info object!");
69
70 retval = false;
71 }
72
73 return retval;
74 }
75
59 int 76 int
60 octave_value_typeinfo::register_type (const string& name) 77 octave_value_typeinfo::register_type (const string& name)
61 { 78 {
62 if (! instance) 79 return (instance_ok ())
63 instance = new octave_value_typeinfo (); 80 ? instance->do_register_type (name) : -1;
64
65 return instance->do_register_type (name);
66 } 81 }
67 82
68 bool 83 bool
69 octave_value_typeinfo::register_binary_op (octave_value::binary_op op, 84 octave_value_typeinfo::register_binary_op (octave_value::binary_op op,
70 int t1, int t2, 85 int t1, int t2,
71 binary_op_fcn f) 86 binary_op_fcn f)
72 { 87 {
73 if (! instance) 88 return (instance_ok ())
74 instance = new octave_value_typeinfo (); 89 ? instance->do_register_binary_op (op, t1, t2, f) : false;
75
76 return instance->do_register_binary_op (op, t1, t2, f);
77 } 90 }
78 91
79 bool 92 bool
80 octave_value_typeinfo::register_assign_op (octave_value::assign_op op, 93 octave_value_typeinfo::register_assign_op (octave_value::assign_op op,
81 int t_lhs, int t_rhs, 94 int t_lhs, int t_rhs,
82 assign_op_fcn f) 95 assign_op_fcn f)
83 { 96 {
84 if (! instance) 97 return (instance_ok ())
85 instance = new octave_value_typeinfo (); 98 ? instance->do_register_assign_op (op, t_lhs, t_rhs, f) : -1;
86
87 return instance->do_register_assign_op (op, t_lhs, t_rhs, f);
88 } 99 }
89 100
90 bool 101 bool
91 octave_value_typeinfo::register_pref_assign_conv (int t_lhs, int t_rhs, 102 octave_value_typeinfo::register_pref_assign_conv (int t_lhs, int t_rhs,
92 int t_result) 103 int t_result)
93 { 104 {
94 if (! instance) 105 return (instance_ok ())
95 instance = new octave_value_typeinfo (); 106 ? instance->do_register_pref_assign_conv (t_lhs, t_rhs, t_result) : false;
96
97 return instance->do_register_pref_assign_conv (t_lhs, t_rhs, t_result);
98 } 107 }
99 108
100 bool 109 bool
101 octave_value_typeinfo::register_widening_op (int t, int t_result, 110 octave_value_typeinfo::register_widening_op (int t, int t_result,
102 type_conv_fcn f) 111 type_conv_fcn f)
103 { 112 {
104 if (! instance) 113 return (instance_ok ())
105 instance = new octave_value_typeinfo (); 114 ? instance->do_register_widening_op (t, t_result, f) : false;
106
107 return instance->do_register_widening_op (t, t_result, f);
108 } 115 }
109 116
110 int 117 int
111 octave_value_typeinfo::do_register_type (const string& name) 118 octave_value_typeinfo::do_register_type (const string& name)
112 { 119 {