예제 #1
0
        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");
            }
        }
예제 #2
0
        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");
            }
        }