0

我想libtooling用来测试 a 定义的是否CXXRecordDecl是可复制构造的。

我已经尝试过:

  • hasCopyConstructorWithConstParam()
  • hasTrivialCopyConstructor() || hasNonTrivialCopyConstructor()

不幸的是,true如果类的复制构造函数被隐式删除,这两个表达式都会返回。如果类继承自不可复制的类或具有不可复制的成员变量,则可能会发生这种情况。

测试一个类是否可复制构造的逻辑很重要,并且必须存在clang. 如何测试一个类是否可以复制构造libtooling

4

1 回答 1

1

将评论变成答案:

您可以使用检索构造函数CXXRecordDecl::ctor_begin

并检查CXXConstructorDecl::isDeleted()

于 2015-10-23T19:58:02.197 回答