使用clang编译时出错:在类定义结束之前,异常规范不可用

时间:2017-07-24 15:26:04

标签: c++ clang

在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); }

1 个答案:

答案 0 :(得分:-1)

我找到了解决方案。 lib是用c ++ 11编写的,所以我需要激活c ++ 11。我添加了cmake line

set (CMAKE_CXX_STANDARD 11)