Ejemplo n.º 1
0
        public override bool VisitClassTemplateSpecializationDecl(ClassTemplateSpecialization specialization)
        {
            if (!base.VisitClassTemplateSpecializationDecl(specialization))
            {
                return(false);
            }

            if (specialization.GenerationKind == GenerationKind.Internal)
            {
                return(false);
            }

            TypeMap typeMap;

            if (!Options.GenerateClassTemplates &&
                !specialization.IsExplicitlyGenerated &&
                !Context.TypeMaps.FindTypeMap(specialization, out typeMap))
            {
                specialization.ExplicitlyIgnore();
                return(false);
            }

            Declaration decl = null;

            if (specialization.Arguments.Any(a =>
                                             a.Type.Type?.TryGetDeclaration(out decl) == true) &&
                decl.Ignore)
            {
                specialization.ExplicitlyIgnore();
                return(false);
            }

            return(true);
        }
Ejemplo n.º 2
0
        public override bool VisitClassTemplateSpecializationDecl(ClassTemplateSpecialization specialization)
        {
            if (!base.VisitClassTemplateSpecializationDecl(specialization))
            {
                return(false);
            }

            if (!Options.GenerateClassTemplates && !specialization.IsExplicitlyGenerated)
            {
                specialization.ExplicitlyIgnore();
                return(false);
            }

            Declaration decl = null;

            if (specialization.Arguments.Any(a =>
                                             a.Type.Type?.TryGetDeclaration(out decl) == true))
            {
                decl.Visit(this);
                if (decl.Ignore)
                {
                    specialization.ExplicitlyIgnore();
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 3
0
 public override bool VisitClassTemplateSpecializationDecl(ClassTemplateSpecialization specialization)
 {
     specialization.ExplicitlyIgnore();
     return(false);
 }