c++ - Eclipse 无法在单独的文件中解析具有显式实例化的模板类
问题描述
我有以下模板类的代码结构:
// LagrangeMultiplier.hpp
template <int order>
class LagrangeMultiplier
{
...
};
// LagrangeMultiplier.cpp
#include "LagrangeMultiplier.hpp"
template <int order>
LagrangeMultiplier<order>::LagrangeMultiplier(...)
{
...
}
#include "LagrangeMultiplier.inst"
// LagrangeMultiplier.inst
template class LagrangeMultiplier<6>;
...
template class LagrangeMultiplier<5810>;
也就是说,我在一个带有.inst
扩展名的文件中明确列出了特定的模板实例化,然后将其包含在我的.cpp
文件末尾。这是受 dealii 处理模板的启发。
这编译得很好,给了我我想要的。但是,每当我尝试在另一个源文件中使用这个类时,Eclipse 都会告诉我Type 'LagrangeMultiplier<order>' could not be resolved
. 这对我来说很烦人——有什么方法可以让 Eclipse 识别模板类的这些特定实例?
编辑:以下是我将如何在另一个文件中使用它:
// lagrange_test.cpp
#include "LagrangeMultiplier.hpp"
int main()
{
constexpr int order = 2702;
LagrangeMultiplier<order> lm();
...
return 0;
}
解决方案
推荐阅读
- oracle - 如何在 Oracle SQL developer(版本 20.4.1.407)中调试触发器?
- excel - 在 Excel 2010 中按升序或降序对数字的数字进行排序?
- mysql - MySQL:根据匹配的 id 将数据从一个表复制到另一个表时出现问题
- r - 将顶点属性数据添加到二分网络数据 - 用于 ERGM
- amazon-web-services - 负载均衡器方法(L4、L7)和 AWS
- vagrant - 安装 atom 时出现 Vagrant 错误
- python - 如何为随机森林的超参数调优定义标签和特征?
- laravel - Laravel - 如何添加 ALL 以选择下拉菜单并允许按全部过滤
- svg - 如何更改已设置的 SVG 属性
- git - 可以说是远程存储库?