enable_shared_from_this派生类方法是未定义的引用

时间:2017-07-10 08:33:42

标签: c++ shared-ptr

我正在使用apache的parquet-cpp库(点击链接查看相关文件)。第82行定义了继承自std :: enable_shared_from_this的类RowGroupStatistics,第132行定义了继承自RowGroupStatistics的类TypedRowGroupStatistics。

在我的代码中我只有:

shared_ptr<RowGroupStatistics> stats = ...;
shared_ptr<Int32Statistics> stats2 = static_pointer_cast<Int32Statistics>(ccm.statistics());

在统计结尾处将Int32Statistics定义为TypedRowGroupStatistics的模板化类。

当我尝试使用TypedRowGroupStatistics指针的min或max方法时

stats2->min();

我收到编译错误:

undefined reference to `parquet::TypedRowGroupStatistics<parquet::DataType<(parquet::Type::type)1> >::min() const'
collect2: error: ld returned 1 exit status

我的猜测是我使用了enable_shared_from_this功能错误,但我无法弄清楚将基指针强制转换为派生类并使用其方法的正确方法。

0 个答案:

没有答案