我们有一个构建正常的Visual Studio 2010项目。我想将项目迁移到Visual Studio 2015.当我尝试使用VS2015(工具集14.0)构建项目时,项目的第三方源代码文件之一无法编译并出错:
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\tuple(295): error C2864: 'std::tuple<_This,_Rest...>::_Mysize': a static data member with an in-class initializer must have non-volatile const integral type
失败的代码行是:
的最后一行template<class _This,
class... _Rest>
class tuple<_This, _Rest...>
: private tuple<_Rest...>
{ // recursive tuple definition
public:
typedef _This _This_type;
typedef tuple<_This, _Rest...> _Myt;
typedef tuple<_Rest...> _Mybase;
static constexpr size_t _Mysize = 1 + sizeof...(_Rest);
我理解错误消息,但我不明白为什么会出现VS2015头文件。该文件肯定与VS2015代码生成兼容吗?
有什么想法吗?
答案 0 :(得分:0)
我找到了原因,项目代码包括以下行:
#define constexpr /* nothing */
我禁用了该代码,然后编译了代码。