namespace Casc { #ifdef _MSC_VER namespace fs = std::experimental::filesystem::v1; #else namespace fs = boost::filesystem; #endif const std::string PathSeparator = conv_type().to_bytes({ fs::path::preferred_separator }); }
TYPE SUBR_check_good_type(VALUE *param, int count) { int i; TYPE type, type2; if (count == 0) goto __VARIANT; type = conv_type(param[0].type); if (TYPE_is_value(type)) { for (i = 1; i < count; i++) { type2 = conv_type(param[i].type); if (type2 == type) continue; if (type == T_NULL) { if (type2 <= T_FLOAT) goto __VARIANT; type = type2; continue; } if (type <= T_FLOAT && type2 <= T_FLOAT) { if (type2 > type) type = type2; continue; } if (type2 == T_NULL) { if (type <= T_FLOAT) goto __VARIANT; else continue; } if (TYPE_is_object(type) && TYPE_is_object(type2)) { type = T_OBJECT; continue; } type = T_VARIANT; break; } } if (type == T_VOID) THROW(E_NRETURN); else if (!TYPE_is_value(type)) THROW(E_TYPE, "Variant", TYPE_get_name(type)); return type; __VARIANT: return T_VARIANT; }