在MacOS上使用clang 800.0.38编译c ++库时出错。
template<class T> struct _reference_base<T, int>
{
enum { rb_tag = 1 }; typedef T t;
static inline t* deref(_stg_u& x, bool byptr) throw() { return reinterpret_cast<t*>(byptr ? x.p1 : &x); }
static inline t* _drf_c(const unity* p) throw() { return deref(p->_data, p->isByPtr()); }
};
在这一行:static inline t* _drf_c(const unity* p) throw() { return deref(p->_data, p->isByPtr()); }
这一行:
static inline t* deref(_stg_u& x, bool byptr) throw() { return reinterpret_cast<t*>(byptr ? x.p1 : &x); }
答案 0 :(得分:-1)
我找到了解决方案。 lib是用c ++ 11编写的,所以我需要激活c ++ 11。我添加了cmake line
set (CMAKE_CXX_STANDARD 11)