Is your feature request related to a problem? Please describe.
Demangling type names may change across systems and may even change across compiler versions. This leads us to want to make fire more future-proof by allowing the users to run fire without the string-based type checking that is done at various points.
Describe the solution you'd like
Compile-time or run-time choice allowing users to effectively turn off the string-based type checking that is done.
The places these demangled names are required to be effectively persisted across compiler versions is in the Event::add and Event::get methods.
You'll notice that this is only meant to prevent us from trying to coerce the data on disk into a event object class which cannot hold that data. We could allow the user to run in an "unsafe" mode where we just try to load the data without this run-time check - this may lead to very difficult to parse exceptions or undefined behavior in the destination class, so this mode should not be the default.
Is your feature request related to a problem? Please describe. Demangling type names may change across systems and may even change across compiler versions. This leads us to want to make fire more future-proof by allowing the users to run fire without the string-based type checking that is done at various points.
Describe the solution you'd like Compile-time or run-time choice allowing users to effectively turn off the string-based type checking that is done. The places these demangled names are required to be effectively persisted across compiler versions is in the Event::add and Event::get methods.
https://github.com/LDMX-Software/fire/blob/9e62a02c909e865f6bf1c5cf9da1c738a4e982aa/include/fire/Event.h#L196-L209
https://github.com/LDMX-Software/fire/blob/9e62a02c909e865f6bf1c5cf9da1c738a4e982aa/include/fire/Event.h#L306-L317
You'll notice that this is only meant to prevent us from trying to coerce the data on disk into a event object class which cannot hold that data. We could allow the user to run in an "unsafe" mode where we just try to load the data without this run-time check - this may lead to very difficult to parse exceptions or undefined behavior in the destination class, so this mode should not be the default.