这是一个已知的VC14错误

时间:2015-08-27 16:35:12

标签: c++ visual-studio-2015

下面的代码给出了编译错误。

  

$ cl.exe VC14-bug.cpp

     

Microsoft(R)C / C ++优化编译器版本19.00.23026 for x64

     

版权所有(C)Microsoft Corporation。保留所有权利。

     

VCl 4-bug.cpp

     

VC14-bug.cpp(41):错误C2893:无法专门化功能模板'void failed(T1,Poly> *)'

     

VC14-bug.cpp(41):注意:使用以下模板参数:

     

VC14-bug.cpp(41):注意:'T1 = int'

     

VC14-bug.cpp(41):注意:'T2 =内核'

函数f()会产生问题。任何人都可以复制它吗?

if(pt.Count > 0)  ob.PostCode = pt[0];
if(pt.Count > 1)  ob.Town = pt[1];

1 个答案:

答案 0 :(得分:1)

这肯定是VC14模板参数扣除代码中的一个错误。

一种可能的解决方法是在Poly中允许fails的所有类型的容器:

template<class T1, class T2, class Cont>
void
fails(T1, 
      Poly<T2, Cont> *)
{}

我已使用setDescendantFocusability进行了验证。遗憾的是,无法链接到测试用例online Visual C++ compiler