"no matching function for call to [...] cdk::sequence_node*&"
这是什么魔法?我怎么修理它?我一定要演戏吗?
函数期望cdk::sequence_node * some_sequence_node
作为参数。
根据这个关于星号和&号的问题
BinaryNode b;
BinaryNode* ptr = &b;
BinaryNode* &t = ptr;
为什么编译器抱怨如果BinaryNode* &t = ptr;
?编辑(按要求):
pwn_parser.y: In function ‘int yyparse(std::shared_ptr<cdk::compiler>)’:
pwn_parser.y:70:135: error: no matching function for call to ‘pwn::func_decl_node::func_decl_node(int, bool, bool, basic_type*&, std::string*&, cdk::sequence_node*&)’
func_decl : type_specifier tIDENTIFIER '(' func_decl_args ')' context { $$ = new pwn::func_decl_node(LINE, false, false, $1, $2, $4); }
pwn_parser.y:70:135: note: candidates are:
In file included from ast/all.h:99:0,
from pwn_parser.y:5:
./ast/func_decl_node.h:29:12: note: pwn::func_decl_node::func_decl_node(int, bool, bool, basic_type*, cdk::identifier_node*, cdk::sequence_node*)
inline func_decl_node(int lineno, bool local, bool import,
多亏了dyp,他帮助我注意到我忽略的一点不匹配,我才能够修复它。
哦,正确的。但是,您传递了一个std::string*,其中需要一个identifier_node*(用于编译器作为候选对象显示的重载)。- by dyp
第一课:不要错误地把问题看成是一只巨大的怪物或一只吹火的宽翼龙挡住了你的路。把问题想象成总是比你小。搞笑尴尬的雪人漫画
第二课:不要假设某些信息是不相关的。