0
|
1 module dmd.backend.template_t;
|
|
2
|
|
3 /***********************************
|
|
4 * Special information for class templates.
|
|
5 */
|
|
6
|
|
7 struct template_t
|
|
8 {
|
|
9 /+
|
|
10 symlist_t TMinstances; // list of Symbols that are instances
|
|
11 param_t *TMptpl; // template-parameter-list
|
|
12 struct token_t *TMbody; // tokens making up class body
|
|
13 unsigned TMsequence; // sequence number at point of definition
|
|
14 list_t TMmemberfuncs; // templates for member functions (list of TMF's)
|
|
15 list_t TMexplicit; // list of TME's: primary member template explicit specializations
|
|
16 list_t TMnestedexplicit; // list of TMNE's: primary member template nested explicit specializations
|
|
17 Symbol *TMnext; // threaded list of template classes headed
|
|
18 // up by template_class_list
|
|
19 enum_TK TMtk; // TKstruct, TKclass or TKunion
|
|
20 int TMflags; // STRxxx flags
|
|
21
|
|
22 symbol *TMprimary; // primary class template
|
|
23 symbol *TMpartial; // next class template partial specialization
|
|
24 param_t *TMptal; // template-argument-list for partial specialization
|
|
25 // (NULL for primary class template)
|
|
26 list_t TMfriends; // list of Classsym's for which any instantiated
|
|
27 // classes of this template will be friends of
|
|
28 list_t TMnestedfriends; // list of TMNF's
|
|
29 int TMflags2; // !=0 means dummy template created by template_createargtab()
|
|
30 +/
|
|
31 } |