给定A和B类的两个CXXRecordDecl,是否有一种简单的方法可以查看A是否可以隐式转换为B?

Ide*_*Hat 7 c++ clang-ast-matchers

X:尝试编写一个内部clang整洁工具,找到一个包含两种类型(A,B)的表达式然后如果const A&可以隐式转换为则抛出B

鉴于我可以找到两个CXXRecordDecl类,我可以轻松检测是否A可以隐式转换为B

我曾想过走过施工人员,但如果B提供铸造操作员,那将无法覆盖.我可以走过他们两个,但我确信我在这里缺少更多的案例(如外部定义的铸造操作员).基本上我想检测是否std::is_convertible<const B&, A>::value会返回true,每个编译器在验证转换时必须做的事情,但是人类很难写...