11 #include "clang/AST/ASTContext.h"
12 #include "clang/AST/DeclCXX.h"
16 namespace type_traits {
19 bool classHasTrivialCopyAndDestroy(QualType Type) {
20 auto *Record = Type->getAsCXXRecordDecl();
21 return Record && Record->hasDefinition() &&
22 !Record->hasNonTrivialCopyConstructor() &&
23 !Record->hasNonTrivialDestructor();
28 if (Type->isDependentType())
30 return !Type.isTriviallyCopyableType(Context) &&
31 !classHasTrivialCopyAndDestroy(Type);
llvm::Optional< bool > isExpensiveToCopy(QualType Type, ASTContext &Context)
ClangTidyContext & Context