예제 #1
0
 public static IEnumerable <TemplateArgument> GetArguments(this DependentTemplateSpecializationType type)
 {
     for (var x = 0; x < type.ArgumentsCount; x++)
     {
         var argument = type.getArguments((uint)x);
         yield return(argument);
     }
 }
예제 #2
0
 public CSharpTypePrinterResult VisitDependentTemplateSpecializationType(
     DependentTemplateSpecializationType template, TypeQualifiers quals)
 {
     if (template.Desugared.Type != null)
     {
         return(template.Desugared.Visit(this));
     }
     return(string.Empty);
 }
예제 #3
0
        public bool VisitDependentTemplateSpecializationType(
            DependentTemplateSpecializationType template, TypeQualifiers quals)
        {
            if (!VisitType(template, quals))
            {
                return(false);
            }

            if (VisitOptions.VisitTemplateArguments)
            {
                foreach (var arg in template.Arguments)
                {
                    switch (arg.Kind)
                    {
                    case TemplateArgument.ArgumentKind.Type:
                        var type = arg.Type.Type;
                        if (type != null)
                        {
                            type.Visit(this, arg.Type.Qualifiers);
                        }
                        break;

                    case TemplateArgument.ArgumentKind.Declaration:
                        arg.Declaration.Visit(this);
                        break;
                    }
                }
            }

            if (template.Desugared.Type != null)
            {
                return(template.Desugared.Visit(this));
            }

            return(false);
        }
예제 #4
0
 public bool VisitDependentTemplateSpecializationType(DependentTemplateSpecializationType template, TypeQualifiers quals)
 {
     throw new NotImplementedException();
 }
예제 #5
0
 private DependentTemplateSpecializationType(DependentTemplateSpecializationType.__Internal native, bool skipVTables = false)
     : this(__CopyValue(native), skipVTables)
 {
     __ownsNativeInstance = true;
     NativeToManagedMap[__Instance] = this;
 }
예제 #6
0
 private static void* __CopyValue(DependentTemplateSpecializationType.__Internal native)
 {
     var ret = Marshal.AllocHGlobal(28);
     global::CppSharp.Parser.AST.DependentTemplateSpecializationType.__Internal.cctor_1(ret, new global::System.IntPtr(&native));
     return ret.ToPointer();
 }
예제 #7
0
 public static DependentTemplateSpecializationType __CreateInstance(DependentTemplateSpecializationType.__Internal native, bool skipVTables = false)
 {
     return new DependentTemplateSpecializationType(native, skipVTables);
 }
예제 #8
0
 public string VisitDependentTemplateSpecializationType(DependentTemplateSpecializationType template, TypeQualifiers quals)
 {
     throw new NotSupportedException( );
 }
예제 #9
0
 public virtual TypePrinterResult VisitDependentTemplateSpecializationType(
     DependentTemplateSpecializationType template, TypeQualifiers quals)
 {
     throw new NotImplementedException();
 }
 public bool VisitDependentTemplateSpecializationType(DependentTemplateSpecializationType template, TypeQualifiers quals)
 {
     return(false);
 }