gpt4 book ai didi

c++ - 如何使用 C++ libgraphqlparser 获取 GraphQL FieldDefinition 中定义的类型?

转载 作者:太空宇宙 更新时间:2023-11-04 12:46:06 25 4
gpt4 key购买 nike

我正在使用 Facebook 的 libgraphqlparser 库与 C++ 中的 GraphQL AST 进行交互。我正在尝试确定 FieldDefinition 的特定 type,它可能是 ListTypeNamedType 等。 ,使用这样的代码:

bool isListType (FieldDefinition * fieldDef) {
if (ListType* lt = dynamic_cast<ListType*>(fieldDef->getType())) {
return true;
}
return false;
}

但是,在fieldDef上有如下错误:

the operand of a pointer dynamic_cast must be a pointer to a complete class type

是否有另一种方法来测试getType 返回的特定类?

最佳答案

您可以定义一个 AstVisitor 子类来覆盖 visitNamedTypevisitListTypevisitNonNullType 并记录其中的哪些首先调用三个方法来进行类型检查。 (参见 AstVisitor.h。)请注意 ListTypeNonNullType 包含其他类型!您也可以将处理每种类型的逻辑直接放在访问者中,如果可能的话,这可能会更方便。

关于c++ - 如何使用 C++ libgraphqlparser 获取 GraphQL FieldDefinition 中定义的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51500971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com