c++ - boost::单位::数量 "incomplete type"错误

标签 c++ templates boost boost-units

我正在尝试在项目中使用 boost::units 但遇到了麻烦。

我有一个模板类,其中有一些 quantity对象作为成员。在一个中,我希望存储一个具有压力维度的值,所以我有 quantity<pressure> press;声明为成员变量。

然而,这给出了一个错误,指出 quantity需要两个模板参数(源代码显示第二个模板参数应该默认为 double )。如果我然后指定 quantity<pressure,double> press;相反,我得到一个错误,上面写着

  • 错误:字段“press”的类型不完整。

是我做错了什么还是压力的执行有问题?

最小示例:

#include <boost/units/dimension.hpp>
#include <boost/units/systems/si/pressure.hpp>

using namespace boost::units;
using namespace boost::units::si;

struct MyClass
{
    quantity<pressure,double> press;    
};

详细信息:

  • boost 1.54.0
  • g++ 4.7.3

最佳答案

我相信你需要包括这个:

#include <boost/units/quantity.hpp>

Coliru

关于c++ - boost::单位::数量 "incomplete type"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20049032/

相关文章:

c++ - 如何使用 typedef 和可变参数模板包装除一个模板参数之外的所有模板参数?

c++ - C/C++ 中的并发日志文件访问

c++ - 当 T 是指针类型时 const T 的含义?

c++ - 从可变参数模板实例化调用函数时调用意外重载

c++ - Vector of Base unique_ptr 在 emplace_back(new T()) 上导致对象切片

c++ - 如何正确等待线程中的信号

c++ - 带有 sys/select.h 宏的旧式转换警告

c++ - 同步 TCP 日间客户端的用法

c++17 polyfills 和 boost

c++ - 通过与输入相同的boost图创建无向图