Я пытаюсь соответствовать операторам коммутатора, которые работают на типах перечисления, определенных в определенных файлах заголовков. Я использую Clang-Query на источнике, который выглядит как следующее: < /p>
enum class E {
ONE,
TWO
};
class F {
public:
E operator*() const {
return E{};
}
};
void foo(F f) {
switch (*f) {
case E::ONE:
break;
case E::TWO:
break;
}
};
< /code>
дамп AST этого похож на следующие: < /p>
SwitchStmt
|-ImplicitCastExpr
| `CXXOperatorCallExpr`
< /code>
Я ожидаю, что следующее соответствует коммутатору, но это не < /p>
clang-query> m switchStmt(implicitCastExpr())
< /code>
demo < /p>
Что я делаю не так? (Мой план состоял в том, чтобы сопоставить с ImtiaceCastExpr ()
, а затем совместно с hasimpliciteDestinationType () и hasdeclaration () в соответствии с объявлениями в этих конкретных файлах заголовка.)
Я пытаюсь соответствовать операторам коммутатора, которые работают на типах перечисления, определенных в определенных файлах заголовков. Я использую Clang-Query на источнике, который выглядит как следующее: < /p> [code]enum class E { ONE, TWO };
class F { public: E operator*() const { return E{}; } };
void foo(F f) { switch (*f) { case E::ONE: break; case E::TWO: break; } }; < /code> дамп AST этого похож на следующие: < /p> SwitchStmt |-ImplicitCastExpr | `CXXOperatorCallExpr` < /code> Я ожидаю, что следующее соответствует коммутатору, но это не < /p> clang-query> m switchStmt(implicitCastExpr()) < /code> demo < /p> Что я делаю не так? (Мой план состоял в том, чтобы сопоставить с ImtiaceCastExpr () [/code], а затем совместно с hasimpliciteDestinationType () и hasdeclaration () в соответствии с объявлениями в этих конкретных файлах заголовка.)
Я пытаюсь соответствовать операторам коммутатора, которые работают на типах перечисления, определенных в определенных файлах заголовков. Я использую Clang-Query на источнике, который выглядит как следующее:
enum class E {
ONE,
TWO
};
Недавно я пытаюсь научиться писать камерию AST, который совпадает с некоторыми типами операторов переключения (которые включаются в набор перечислений). Как лучше всего изучить это? Не очень легко выяснить правильную иерархию сопоставителей, которую...
является той проблемой с проблемой компилятора macos g ++ (при использовании оптимизации)?
Проблема состоит в том, что при распределении с () или {} объектом с пустым конструктором, компилятор неверно думает, что объект ненициализируется, и, таким...
Является ли Clang-tidy '-Checks = clang-analyzer-*' падение замены для Scan-Build и clang-ceck -нализис ? Если я использую первое, есть ли необходимость снова использовать последние? Несмотря на то, что ответы там говорят Да , нет связанных...