У меня здесь небольшая проблема.У меня есть clang::Expr
объект.Я хочу получить тип этого выражения в виде строки.Согласно документации, clang::Expr
возвращает QualType
.clang::QualType
имеет метод с именем getAsString()
, который возвращает строку, описывающую этот тип.
// Get the expressions to the left and right of the binary operator.
const Expr *lhs = binop->getLHS()->IgnoreParenCasts();
string typeLhs = lhs->getType()->getAsString();
Когда я набираю make, он сообщает об ошибке:
remove_memcpy.cpp:110:46: error: no member named 'getAsString' in 'clang::Type'
string typeLhs = lhs->getType()->getAsString();
~~~~~~~~~~~~~~ ^
Видимо Expr::getType()
возвращает clang::Type
, а не clang::QualType
, как ожидалось.
Странно, в документации это дни, когда Expr::getType()
возвращает clang::QualType
.Возможно, это потому, что последняя версия документации - Clang 9.0.0, но я использую Clang 6.0.1.Может быть, они изменили его.
Если у меня есть clang::Expr
, базовый тип которого int
или что-то еще, как я могу получить int в виде строки, std::string("int");
?