Mercurial > hg > octave-nkf
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 { |