我有以下问题要解决。
我有组件 A。这个组件有一些子组件 - B、C、D。使用 cmake 我正在构建或不构建那些 B、C、D 组件。这取决于当前的平台配置。我的 cmake 系统正在制作可执行的 makefile(用于 A 组件),用于仅链接那些在给定 cmake 运行中使用的组件。如果组件 B 已构建,则将其添加到可执行文件中,否则 - 未链接。与其他相同 - C,D。
所有这些 B、C、D 组件都提供了 A 组件中使用的接口的一些实现。此 A 组件应管理 B、C、D 创建的对象,并将这些对象保存在某个映射中,在适当的时间使用适当的对象。
问题:
我想实现一些简单可靠的机制来自动添加那些实现 A 接口的对象,就像现在链接一样 - 链接的只是构建的模块。这些对象也是如此 - 我希望它们仅在编译时才在 A 组件中注册。
我很难解释。这个想法很简单——在编译时构建这些对象的一些映射。只有编译的组件才能将它们的对象传递给这个映射。