示例#1
0
 public override bool VisitMethodDecl(Method method)
 {
     if (method.Namespace is ClassTemplateSpecialization)
     {
         var exporting = string.Empty;
         if (Context.ParserOptions.IsMicrosoftAbi)
         {
             exporting = "__declspec(dllexport) ";
         }
         else if (TargetTriple.IsMacOS(Context.ParserOptions.TargetTriple))
         {
             exporting = "__attribute__((visibility(\"default\"))) ";
         }
         WriteLine($"template {exporting}{method.Visit(cppTypePrinter)};");
         return(true);
     }
     if (method.IsConstructor)
     {
         WrapConstructor(method);
         return(true);
     }
     if (method.IsDestructor)
     {
         WrapDestructor(method);
         return(true);
     }
     return(this.VisitFunctionDecl(method));
 }
示例#2
0
        private string GetExporting()
        {
            var exporting = string.Empty;

            if (Context.ParserOptions.IsMicrosoftAbi)
            {
                exporting = "__declspec(dllexport) ";
            }
            else if (TargetTriple.IsMacOS(Context.ParserOptions.TargetTriple))
            {
                exporting = "__attribute__((visibility(\"default\"))) ";
            }
            return(exporting);
        }