gpt4 book ai didi

C++ 和 CMake : configure a template class from file

转载 作者:行者123 更新时间:2023-11-28 04:57:09 28 4
gpt4 key购买 nike

我有一个 C++“库”,它由一组可重用的模板化类(即所有源代码都在头文件中)和一组驱动程序文件组成。每个驱动程序源文件都包含一些(但不一定是全部)带有类模板的 header 。

如果我可以在每个驱动程序文件中使用特定的模板参数(在编译时已知)实例化这些类模板,然后通过读取配置文件自动初始化具有实例化类型的对象(这将帮助我删除一些样板代码)。这些配置文件将在对象构造时读取。

假设配置文件将与源代码捆绑在一起。编译驱动程序时它们应该放在哪里,以便每个类都可以找到它的配置文件?我正在使用 CMake 构建代码。

由于可重用代码未编译到库中,我无法将配置文件放在与库相同的位置。我什至不确定这实际上是不是个好主意。

一种解决方案是将包含配置文件的文件夹指定为 CMake 变量,并在每个可配置类的源代码中对该值进行硬编码。有更好的方法吗?也许有一个标准的 CMake 风格的方法来处理这个问题?

最佳答案

我会考虑使用好的“ol 宏”来做到这一点。您可以使用 target_compile_definitions()在源代码中定义宏。然后你的配置文件可以是 CMake 文件本身,加载了 include() .然后在您的源文件中,您可以对 MyTemplateClass<TEMPLATE_ARG_MACRO_1, TEMPLATE_ARG_MACRO_2> 进行显式模板特化或类型定义。 .

希望这是有道理的。

关于C++ 和 CMake : configure a template class from file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46912765/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com