我正在阅读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可以编译?