summaryrefslogtreecommitdiff
path: root/includes/compiler/CTemplateFunc.h
diff options
context:
space:
mode:
authorAsh Wolf <ninji@wuffs.org>2022-12-29 12:32:55 +0000
committerAsh Wolf <ninji@wuffs.org>2022-12-29 12:32:55 +0000
commitfcfbafff31869ed808bff0639532db1828660e92 (patch)
tree7425b346b031c4cb47a06250b3f6f950374d44ae /includes/compiler/CTemplateFunc.h
parentbc1321735c15104ffad195e1509cab5f3a044260 (diff)
downloadMWCC-fcfbafff31869ed808bff0639532db1828660e92.tar.gz
MWCC-fcfbafff31869ed808bff0639532db1828660e92.zip
dump lots more code
Diffstat (limited to '')
-rw-r--r--includes/compiler/CTemplateFunc.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/includes/compiler/CTemplateFunc.h b/includes/compiler/CTemplateFunc.h
index 1461ee4..bf84460 100644
--- a/includes/compiler/CTemplateFunc.h
+++ b/includes/compiler/CTemplateFunc.h
@@ -2,5 +2,18 @@
#define COMPILER_CTEMPLATEFUNC_H
#include "compiler/common.h"
+#include "compiler/CExpr.h"
+
+extern Boolean CTempl_CanDeduceFunc(Object *object, TypeFunc *tfunc, TemplArg *args);
+extern TemplFuncInstance *CTempl_CheckFuncInstance(Object *object1, TypeFunc *tfunc, TemplArg *args, Object *object2);
+extern TemplFuncInstance *CTempl_DeduceFunc(Object *object1, TypeFunc *tfunc, TemplArg *args, Object *object2, Boolean flag);
+extern Boolean CTempl_FuncIsMoreSpecialized(Object *object1, Object *object2);
+extern Object *CTempl_PartialOrdering(Object *object, ObjectList *list, int count);
+extern int CTempl_GetTemplateArgumentExpressionIndex(TemplArg *arg);
+extern Boolean CTempl_DeduceType(Type *type1, UInt32 qual1, Type *type2, UInt32 qual2, TemplArg *argArray, Boolean flag1, Boolean flag2);
+extern void CTempl_FuncMatch(NameSpaceObjectList *list, TemplArg *args, ENodeList *argexprs, Match13 *match13ptr, ENode *expr);
+extern Object *CTempl_DeduceFromFunctionCall(Object *funcobj, TemplArg *templargs, ENodeList *argexprs);
+extern Object *CTempl_DeduceFromConversion(Object *funcobj, Type *type, UInt32 qual);
+extern Object *CTempl_TemplateFunctionCheck(DeclInfo *di, NameSpaceObjectList *nsol);
#endif