如何摆脱头文件依赖?

时间:2018-09-13 20:21:51

标签: c++ dependencies header-files

我正在开发一个软件库,其中的标头之一是这样写的:

#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’

0 个答案:

没有答案