如何在vs12中写这个?

时间:2017-06-30 14:10:26

标签: c++ c++11

我正在阅读post "64bit" on The AdaptiveRisk Blog,其中示例代码有一行无法在visual studio 2013中编译:

/*!
@brief Helper to determine whether there's a key_type for T.
@sa http://stackoverflow.com/a/7728728/266378
*/
template<typename T>
struct has_mapped_type
{
private:
  template<typename C> static char test(typename C::mapped_type*);
  template<typename C> static char(&test(...))[2];
public:
  static constexpr bool value = sizeof(test<T>(0)) == 1;
};

使用constexpr的static constexpr bool value = sizeof(test<T>(0)) == 1;无法编译。只需删除constexpr不起作用,VS报告错误C2864:

  

'nlohmann ::`anonymous-namespace':: has_mapped_type :: value':a   具有类内初始值设定项的静态数据成员必须具有非易失性   const积分型

有没有办法对其进行重新编写,以便VS 2013可以编译?

0 个答案:

没有答案