我试图将一个开源项目从linux移植到窗口,有一些代码在linux中使用g ++或clang ++完美编译,但我无法在MSVC 2015下编译它,有人能告诉我如何解决它或怎么绕过它?非常感谢你的帮助!!!
这是代码(我已将其简化,因此您可以专注于关键内容)
template <typename T, class IsMatch = void>
class vc_hashkey
{
public:
static constexpr bool holds_value() { return false; }
};
template <typename T>
class vc_hashkey<T, typename std::enable_if<std::is_integral<T>::value>::type>
{
public:
static constexpr bool holds_value() { return true; }
};
template <typename T, class IsMatch = void>
class vc_hashkey_and_value
{
};
template <typename T>
class vc_hashkey_and_value<T, typename std::enable_if<vc_hashkey<T>::holds_value()>::type>
{
};
那就是它,我甚至没有在我的主要功能中使用这些代码片段。当我尝试编译时,msvc 2015更新RC1编译器给出了类vc_hashkey_and_value 的部分特化的编译错误,说:
C2039&#39;类型&#39;:不是&#39; std :: enable_if&lt;&#39; false,void&gt;&#39;
的成员C2146语法错误:缺少&#39;&gt;&#39;在标识符&#39;类型&#39;
之前C2064术语不评估为采用0参数的函数
这是MSVC编译器错误,感谢您帮助我!!!