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

时间:2018-10-19 20:26:39

标签: c++ clang-ast-matchers

X:尝试编写一个内部clang整洁工具,该工具查找包含两种类型(AB)的表达式,然后将const A&隐式转换为{{ 1}}?

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

我已经考虑过遍历构造函数,但是如果B提供了强制转换运算符的话,那将无法解决。我可以遍历它们两个,但是我确定这里还有更多的情况(例如外部定义的强制转换运算符)。基本上,我想检测B是否会返回true,这是每个编译器在验证强制类型转换时都必须执行的操作,但是对于人类来说却很难编写...

0 个答案:

没有答案