我正在开发一个简单的 C++ 反射系统,以便在我自己的库中使用。我通过对每个在构造函数中具有副作用的类使用静态成员进行手动注册——它实际上在系统中注册了该类。
一切似乎都很好,直到我发现某些类型没有正确注册。经过研究,我得出的结论是,这是因为链接器拒绝在构建可执行文件的任何地方链接未引用的翻译单元中的成员(我正在构建一个静态库)。
我的问题如下,是否有任何技巧/黑客,甚至是特定于平台的技巧,会迫使链接器链接到选定的翻译单元。
甚至更好的是,对于所描述的自注册类方法是否有任何可靠的替代方法。