У меня есть этот код:лязг :: ast_type_traits :: DynTypedNode :: получить() косяк шаблон Infer аргумент «T»
ASTContext::DynTypedNodeList NodeList = ASTC->getParents(*DRE);
ast_type_traits::DynTypedNode ParentNode = NodeList[0];
/*some code here to determine if the NodeKind is ImplicitCastExpr*/
const ImplicitCastExpr* ParentICE = ParentNode.get();
в основном, его получение родителя матч-узла, а затем, если его a ImplicitCastExpr()
, я хочу получить узел как один и выполнить еще проверок. , когда я пытаюсь скомпилировать код, для DynTypedNode::get()
, я получаю это:
mutator-lvl0.cpp:1644:30: error: no matching member function for call to 'get'
ParentICE = ParentNode.get();
~~~~~~~~~~~^~~
/home/bloodstalker/llvm/llvm/llvm/tools/clang/include/clang/AST/ASTTypeTraits.h:233:12:
note: candidate template ignored: couldn't infer template argument 'T'
const T *get() const {
вот объявление из заголовка:
template <typename T>
const T *get() const {
return BaseConverter<T>::get(NodeKind, Storage.buffer);
}
, что я делаю неправильно?