Skip to content

第8.1节课的test_expression.cpp问题 #15

Open
@Zgh20060114

Description

@Zgh20060114

up大佬你好,在8.1节课的代码中:
static void ShowNodes(const std::shared_ptr<kuiper_infer::TokenNode> &node) {
if (!node) {
return;
}
// 中序遍历的顺序
ShowNodes(node->left);
if (node->num_index < 0) {
if (node->num_index == -int(kuiper_infer::TokenType::TokenAdd)) {
LOG(INFO) << "ADD";
} else if (node->num_index == -int(kuiper_infer::TokenType::TokenMul)) {
LOG(INFO) << "MUL";
}
} else {
LOG(INFO) << "NUM: " << node->num_index;
}
ShowNodes(node->right);
}

TEST(test_expression, expression1) {
using namespace kuiper_infer;
const std::string &statement = "add(@1,@2)";
ExpressionParser parser(statement);
const auto &node_tokens = parser.Generate();
ShowNodes(node_tokens);
}

}
这里node_tokens的类型std::vector<std::shared_ptr>
而ShowNodes()接收的参数类型是std::shared_ptr<kuiper_infer::TokenNode>
所以会报错:No matching function for call to 'ShowNodes'
但是为啥up在b站视频里是对的呀,求教求教,感谢感谢

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions