X:尝试编写一个内部clang整洁工具,该工具查找包含两种类型(A
,B
)的表达式,然后将const A&
隐式转换为{{ 1}}?
鉴于我可以为这些类找到两个B
,我可以轻松地检测到CXXRecordDecl
是否可以隐式转换为A
吗?
我已经考虑过遍历构造函数,但是如果B提供了强制转换运算符的话,那将无法解决。我可以遍历它们两个,但是我确定这里还有更多的情况(例如外部定义的强制转换运算符)。基本上,我想检测B
是否会返回true,这是每个编译器在验证强制类型转换时都必须执行的操作,但是对于人类来说却很难编写...