This adds support for types with namespaces (issue #14). It stores the type name in the BuildSettings and uses that instead of the module name when generating stuff like the factory placement new operators or vtable lookup. I added MiscTests with a test for namespaces, with the idea being we could add more little tests to that project as needed.
A couple notes:
The default module name is derived from the type name (#Class in ClassWatcher.h), which is used for paths. Paths can't have colons, so we have to do something with them. Currently I'm just stripping the namespace off, but perhaps we should help ensure the resulting .dll is unique by converting them to some other character? Ex. foo::bar::MyClass could become _foo_barMyClass.dll.
The generated factory .cpp assumes the header is at "ModuleName.h". It was like that before this PR (although now the factory code uses the typename instead), but should we try to use __rt_getHeaderPath() instead?
This adds support for types with namespaces (issue #14). It stores the type name in the BuildSettings and uses that instead of the module name when generating stuff like the factory placement new operators or vtable lookup. I added MiscTests with a test for namespaces, with the idea being we could add more little tests to that project as needed.
A couple notes:
#Class
in ClassWatcher.h), which is used for paths. Paths can't have colons, so we have to do something with them. Currently I'm just stripping the namespace off, but perhaps we should help ensure the resulting .dll is unique by converting them to some other character? Ex.foo::bar::MyClass
could become _foo_barMyClass.dll.__rt_getHeaderPath()
instead?