75
78
int getPosition (CTemplateParamInfo *) const;
78
bool deduceArguments (unsigned skip);
79
bool deduceArguments (CTypeInfo *, CTypeInfo *, DeducedArgumentList &);
81
int deduceArguments (CTypeInfo *ftype, CTypeInfo *atype, DeducedArgumentList &dargs, bool exact_match = false);
82
int deduceFromArray (CTypeInfo *ftype, CTypeInfo *atype, DeducedArgumentList &dargs, bool exact_match);
83
int deduceFromFunction (CTypeInfo *ftype, CTypeInfo *atype, DeducedArgumentList &dargs, bool exact_match);
84
int deduceFromMemberPointer (CTypeInfo *ftype, CTypeInfo *atype, DeducedArgumentList &dargs, bool exact_match);
85
int deduceFromRecord (CTypeInfo *ftype, CTypeInfo *atype, DeducedArgumentList &dargs, bool exact_match);
86
int deduceTemplateParam (CTypeInfo *ftype, CTypeInfo *atype, DeducedArgumentList &dargs, bool exact_match);
87
int deduceArgumentsFromTemplateArgList (CTemplateInstance *fi, CTemplateInstance *ai, DeducedArgumentList &dargs);
88
bool joinDeducedArguments (DeducedArgumentList &dargs, DeducedArgumentList &curr_dargs, bool &matching_args, bool &ambiguous_type);
89
void getTemplateInstances(CRecord* c, Array<CTemplateInstance*>& instances);
80
90
bool matchArgument (CTree *pexpr, CTree *aexpr);
81
91
bool matchArgument (CTypeInfo *ptype, CTypeInfo *atype, CTree *aexpr);
82
92
bool sameValue (int pos, CConstant *value);
83
93
bool sameType (int pos, CTypeInfo *type);
94
bool setDeducedArgument (DeducedArgumentList &args, int pos, DeducedArgument *arg);
95
bool matchingTemplateParameters (CTemplateParamInfo *param, CObjectInfo *ainfo);
96
CTemplateInfo *getTemplateInfo (CObjectInfo *info);
86
99
inline CObjectInfo *InstantiationCandidate::ObjectInfo () const