common/tree: Convert defines over to templates

Reworks the tree header to operate off of templates as opposed to a
series of defines.

This allows all tree facilities to obey namespacing rules, and also
allows this code to be used within modules once compiler support is in
place.

This also gets rid to use a macro to define functions and structs for
necessary data types. With templates, these will be generated when
they're actually used, eliminating the need for the separate
declaration.
This commit is contained in:
Lioncash 2021-01-12 02:47:36 -05:00
parent 197b5d19bc
commit b15e1a3501
2 changed files with 633 additions and 559 deletions

File diff suppressed because it is too large Load diff