private string InternalMakeCppTypeName(TypeSpec t, bool ref_as_ptr, bool with_ns) { if (t is ArrayContainer) { Report.Error (7179, "Unsupported basic type " + t.GetType ().Name); return "<< " + t.GetType ().Name + " type>>"; } if (t.MemberDefinition.Namespace == "System" && t.Name == "Void") { return "void"; } switch (t.BuiltinType) { case BuiltinTypeSpec.Type.Byte: return "unsigned char"; case BuiltinTypeSpec.Type.SByte: return "signed char"; case BuiltinTypeSpec.Type.Short: return "short"; case BuiltinTypeSpec.Type.UShort: return "unsigned short"; case BuiltinTypeSpec.Type.Int: return "int"; case BuiltinTypeSpec.Type.UInt: return "unsigned int"; case BuiltinTypeSpec.Type.Long: return "long long"; case BuiltinTypeSpec.Type.ULong: return "unsigned long long"; case BuiltinTypeSpec.Type.Enum: return "int"; case BuiltinTypeSpec.Type.Bool: return "bool"; case BuiltinTypeSpec.Type.Float: return "float"; case BuiltinTypeSpec.Type.Double: return "double"; case BuiltinTypeSpec.Type.String: return "_root::String" + (ref_as_ptr ? "*" : ""); case BuiltinTypeSpec.Type.Object: return "_root::Object" + (ref_as_ptr ? "*" : ""); } if (t.IsClass) { return (with_ns ? t.MemberDefinition.Namespace.Replace(".", "::") + "::" : "") + t.Name + (ref_as_ptr ? "*" : ""); } Report.Error (7179, "Unsupported basic type " + t.Name); return "<< " + t.Name + " type>>"; }