[cfe-dev] [RFC] Improving import failure checking strategy inside ASTImporter

Gábor Márton via cfe-dev cfe-dev at lists.llvm.org
Fri May 18 12:47:06 PDT 2018


Of course, I think there is no need to have different functions which
differ only in the cast operation. We can use a template template parameter
for the cast operation:

    template <template<typename> class CastOp, typename DeclTy>
    LLVM_NODISCARD bool import(DeclTy *&ToD, DeclTy *FromD) {
      if (auto Res = Importer.Import(FromD)) {
        ToD = CastOp<DeclTy>(*Res);
        return false;
      }
      return true;
    }

And then the usage:
  if (import<cast_or_null>(ToEPI.ExceptionSpec.SourceDecl,
                 FromEPI.ExceptionSpec.SourceDecl))
    return {};

Gabor

On Fri, May 18, 2018 at 8:52 PM Aleksei Sidorin <a.sidorin at samsung.com>
wrote:
>
> Sorry, I didn't got the idea. Could please you explain a bit more?
>
> 18.05.2018 13:09, Gábor Márton via cfe-dev пишет:
> > An other idea, couldn't we just pass the cast operation as a template
> > template parameter?
> > _______________________________________________
> > cfe-dev mailing list
> > cfe-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
>
> --
> Best regards,
> Aleksei Sidorin,
> SRR, Samsung Electronics
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20180518/49a666bb/attachment.html>


More information about the cfe-dev mailing list