* Fix several bugs with processing templates in ICG
- Fixed an issue where io_src code for some templates was being placed in the
wrong file.
- Fixed an issue with templates being instantiated with templates as parameters.
- Fixed an issue with templates that instantiate templates.
Added additional tests to cover these cases.
* Moved the list of template argument header dependencies from ClassValues to PrintFileContents10 so they can be printed to the io_ file regardless of the order in which class info is printed.
* Moved the list of template argument header dependencies from ClassValues to PrintFileContents10 so they can be printed to the io_ file regardless of the order in which class info is printed.
Moved the list of template argument header dependencies from ClassValues to PrintFileContents10 so they can be printed to the io_ file regardless of the order in which class info is printed.
* Added support to handle template enum class type argument and removed some commented code.
Added support to handle template enum class type argument and removed some commented code.
---------
Co-authored-by: Hong Chen <hchen99@users.noreply.github.com>
* Updated not to add "friend class" to embedded private list so it can be accessed.
* Added a list to hold all friends class decl so able to specifically make sure not to remove them from io source but not to allow is source for others.
* Added namespaces to class names for comparison as class name only needs to be unique within the same namespace.
* Added if NULL check before getting friend decl type string.
Changed the storage of offsets from bytes to bits to better handle bitfields.
Added code to track classes that are defined within other classes and are
private/protected. These classes cannot be used in templates because our
io_src code declares variables outside of the class that would try and use
these private/protected variables. When a template is found to use a
private/protected class it is skipped.
refs #218
Removed the requirement of passing flags throughout ICG indicating if we are
in an inherited class or not. Removed the init_attr friends throughout
Trick core headers.
Moved field offset calculations for inherited classes to when the inherited
classes are processed. This removes the need to have to remember if fields
were inherited or not, the offset already reflects the correct offset.
refs #218
Changed all header file once include variables to follow the same naming
convention and not start with any underscores. Also deleted old
incorrect copyright notices. Also removed $Id: tags from all files.
Fixes#14. Fixes#22.