protected virtual AbstractTypeDefinition CreateSTLCollectionType(TypedefDefinition typedef) { string baseTypeName = Mogre17.GetBaseType(typedef); switch (baseTypeName) { case "std::vector": return(new DefStdVector(typedef.Namespace, typedef.SurroundingClass, typedef.DefiningXmlElement)); case "std::set": return(new DefStdSet(typedef.Namespace, typedef.SurroundingClass, typedef.DefiningXmlElement)); case "std::deque": return(new DefStdDeque(typedef.Namespace, typedef.SurroundingClass, typedef.DefiningXmlElement)); case "std::list": return(new DefStdList(typedef.Namespace, typedef.SurroundingClass, typedef.DefiningXmlElement)); case "HashedVector": return(new DefHashedVector(typedef.Namespace, typedef.SurroundingClass, typedef.DefiningXmlElement)); case "std::map": return(new DefStdMap(typedef.Namespace, typedef.SurroundingClass, typedef.DefiningXmlElement)); default: throw new Exception("Unexpected"); } }
protected virtual AbstractTypeDefinition CreateTemplateTwoTypeParamsType(TypedefDefinition typedef) { string baseTypeName = Mogre17.GetBaseType(typedef); switch (baseTypeName) { case "::std::hash_map": return(new DefStdHashMap(typedef.Namespace, typedef.SurroundingClass, typedef.DefiningXmlElement)); case "std::map": return(new DefStdMap(typedef.Namespace, typedef.SurroundingClass, typedef.DefiningXmlElement)); case "std::multimap": return(new DefStdMultiMap(typedef.Namespace, typedef.SurroundingClass, typedef.DefiningXmlElement)); case "std::pair": return(new DefStdPair(typedef.Namespace, typedef.SurroundingClass, typedef.DefiningXmlElement)); default: throw new Exception("Unexpected"); } }