c++ - 如何摆脱标题依赖?
问题描述
我正在开发一个软件库,其中一个标题是这样写的:
#include "exprtk.hpp"
class ExprtkWrapper {
typedef exprtk::symbol_table<double> symbol_table_t;
typedef exprtk::expression<double> expression_t;
typedef exprtk::parser<double> parser_t;
public:
API ExprtkWrapper( std::string expression_string );
API ExprtkWrapper( );
API ~ExprtkWrapper();
API double eval(double x1 = 0.0, double x2 = 0.0, double x3 = 0.0, double x4 = 0.0);
API double eval(std::vector<double> &p);
private:
expression_t *expression = nullptr;
symbol_table_t *symbol_table = nullptr;
parser_t * parser = nullptr;
};
它需要exprtk
图书馆才能工作。问题是,这exprtk.hpp
是一个仅限标题的库,我不希望在包含标题的任何地方复制它。是否有任何优雅的方法来重写标头以获取exprtk.hpp
相应的 .cpp 文件?
我试过简单地将我的类重写到 cpp 文件中,只在标题中留下声明,但后来我得到了错误:
error: invalid use of incomplete type ‘class ExprtkWrapper’
解决方案
推荐阅读
- c++ - C++ std::thread 在没有活动异常的情况下终止调用已中止
- tensorflow - 自定义反向传播
- react-native - 关于反应原生的 podfile 问题
- android - 如何确保为每个设备创建一个房间,而不是每次启动应用程序时创建一个新实例
- python - 聚合函数的分组和过滤
- mysql - 如何使用python访问位于不同位置(非本地)的另一台机器上的MySQL数据库
- angular - 使用 ngx-translate/core 进行角度翻译
- excel - 如何在多列中的公式中查找特定文本(基于列标题名称)并替换为不同的文本
- c# - 如何从一组源文件为多个框架编译 C# 代码
- php - 将 foreach 中的值连接到输入值属性中