【发布时间】:2014-01-05 11:32:04
【问题描述】:
我正在尝试在 OSX Mavericks (Darwin 13.0.0) 上编译 SALOME 7.3.0 并安装了 boost 1.55 (使用自制软件)。 GCC 在尝试定义模板函数时阻塞了 SALOME (SRC/DF) 的工具包函数之一,错误是:
In file included from /Users/dingram/Developer/SALOME/KERNEL_SRC_7.3.0/src/DF/DF_Attribute.cxx:20:
/Users/dingram/Developer/SALOME/KERNEL_SRC_7.3.0/src/DF/DF_definitions.hxx:50:44: error: no member named 'dynamic_cast_tag' in namespace
'boost::detail'
boost::shared_ptr<T>(r,boost::detail::dynamic_cast_tag())
^
代码片段是
#include <iostream>
#include <stdio.h>
#include <boost/shared_ptr.hpp>
template<class T> class df_shared_ptr: public boost::shared_ptr<T>
{
public:
df_shared_ptr() {}
template<class Y>
explicit df_shared_ptr(Y * p)
{
boost::shared_ptr<T>::reset(p);
}
template<class Y>
df_shared_ptr(df_shared_ptr<Y> const & r):
boost::shared_ptr<T>(r,boost::detail::dynamic_cast_tag())
{}
我不是 C++ 程序员,所以有点受阻。 SALOME 论坛上有类似问题的报告,但没有回复。
【问题讨论】:
-
看起来缺少包含。仅供参考,不建议直接使用 details 命名空间的成员。
标签: c++ boost shared-ptr dynamic-cast