26 #if defined (HAVE_CONFIG_H)
66 else if (c1 ==
"class" || c2 ==
"class")
70 bool c1_is_int = (c1 ==
"int8" || c1 ==
"uint8"
71 || c1 ==
"int16" || c1 ==
"uint16"
72 || c1 ==
"int32" || c1 ==
"uint32"
73 || c1 ==
"int64" || c1 ==
"uint64");
74 bool c2_is_int = (c2 ==
"int8" || c2 ==
"uint8"
75 || c2 ==
"int16" || c2 ==
"uint16"
76 || c2 ==
"int32" || c2 ==
"uint32"
77 || c2 ==
"int64" || c2 ==
"uint64");
79 bool c1_is_char = (c1 ==
"char");
80 bool c2_is_char = (c2 ==
"char");
82 bool c1_is_double = (c1 ==
"double");
83 bool c2_is_double = (c2 ==
"double");
85 bool c1_is_single = (c1 ==
"single");
86 bool c2_is_single = (c2 ==
"single");
88 bool c1_is_logical = (c1 ==
"logical");
89 bool c2_is_logical = (c2 ==
"logical");
91 bool c1_is_built_in_type
92 = (c1_is_int || c1_is_char || c1_is_double || c1_is_single
95 bool c2_is_built_in_type
96 = (c2_is_int || c2_is_char || c2_is_double || c2_is_single
101 if (c1 ==
"cell" || c2 ==
"cell")
103 else if (c1_is_char && c2_is_built_in_type)
105 else if (c2_is_char && c1_is_built_in_type)
107 else if (c1_is_int && c2_is_built_in_type)
109 else if (c2_is_int && c1_is_built_in_type)
111 else if (c1_is_single && c2_is_built_in_type)
113 else if (c2_is_single && c1_is_built_in_type)
115 else if (c1_is_double && c2_is_built_in_type)
117 else if (c2_is_double && c1_is_built_in_type)
119 else if (c1_is_logical && c2_is_logical)
129 if (! (all_dq_strings_p || all_sq_strings_p))
131 "concatenation of different character string types may have unintended consequences");
octave_value concat(char string_fill_char) const
void copy_base(const tree_array_list &array_list)
char string_fill_char(void) const
tree_matrix(tree_argument_list *row=nullptr, int l=-1, int c=-1)
octave_value evaluate(tree_evaluator &, int nargout=1)
tree_expression * dup(symbol_scope &scope) const
virtual int column(void) const
static std::string static_class_name(void)
void warning_with_id(const char *id, const char *fmt,...)
std::string get_concat_class(const std::string &c1, const std::string &c2)
void maybe_warn_string_concat(bool all_dq_strings_p, bool all_sq_strings_p)
octave_value::octave_value(const Array< char > &chm, char type) return retval