Учитывая два CXXRecordDecl для классов A и B, есть ли простой способ увидеть, является ли A неявно конвертируемым в B? - PullRequest
0 голосов
/ 19 октября 2018

X: Попытка написать внутренний инструмент Clang Tidy, который находит выражение, содержащее два типа (A, B), а затем выдает, если const A& неявно преобразуется в B?

Учитывая, что я могу найти два CXXRecordDecl для классов, могу ли я легко определить, является ли A неявно преобразованным в B?

Я думал о том, чтобы пройтись по конструкторам, но это непокрытие, если B предоставляет операторы приведения.Я мог бы пройтись по обоим, но я уверен, что есть и другие случаи, которые мне здесь не хватает (например, внешние операторы приведения).По сути, я хочу определить, будет ли std::is_convertible<const B&, A>::value возвращать true, что должен делать каждый компилятор при проверке приведения, но для человека очень сложно написать ...

...