Currently, we use RTTI to determine class ID#
We should use the address of the static void idFunction(){}, which is unique per templated instance.
Channel's usage of RTTI has been removed. For components, some design decisions need to be made, since a component::idFunction would not be templated.
Options are: CRTP "component" and make a component base. Use the address of debug_getName Use a virtual idFunction
All of these suffer from the same problem; namely, that not propagating through inheritance (ei, bar : foo : component<foo>) causes problems;
bar1 : foo : component<foo> == bar2 : foo : component<foo>
We need to use an address of a function that will be defined by the most-derived class, always. The constructor doesn't seem to work.
I'll ask Stack Overflow
Log in to post a comment.
Channel's usage of RTTI has been removed. For components, some design decisions need to be made, since a component::idFunction would not be templated.
Options are:
CRTP "component" and make a component base.
Use the address of debug_getName
Use a virtual idFunction
All of these suffer from the same problem; namely, that not propagating through inheritance (ei, bar : foo : component<foo>) causes problems;
bar1 : foo : component<foo> == bar2 : foo : component<foo>
We need to use an address of a function that will be defined by the most-derived class, always. The constructor doesn't seem to work.
I'll ask Stack Overflow