为什么以下代码段不是基于MSVC(2015,64位)构建的。它是其他代码的简化版本,这就是它看起来有点奇怪的原因。
#include <string>
template<class T>
class A {};
template<class T>
using AA = A<T>;
//duplicate using statement
template<class T>
using AA = A<T>;
int main(int argc, char *argv[]) {
return 0;
}
C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ INCLUDE \ xstring(780):错误C2665:&#39; std :: _ String_alloc&lt; std :: _ String_base_types&lt; _Elem,_Alloc&gt;&gt;: :_String_alloc&#39;:3个重载中没有一个可以转换所有参数类型 同 [ _Elem =炭, _Alloc =标准::分配器&LT;炭&GT; ]
C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ INCLUDE \ xstring(744):注意:可能是&#39; std :: _ String_alloc&lt; std :: _ String_base_types&lt; _Elem,_Alloc&gt;&gt; :: _ String_alloc(std :: _ String_alloc&lt; std :: _ String_base_types&lt; _Elem,_Alloc&gt;&gt;&amp;&amp;)&#39; 同 [ _Elem =炭, _Alloc =标准::分配器&LT;炭&GT; ]
C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ INCLUDE \ xstring(744):注意:或&#39; std :: _ String_alloc&lt; std :: _ String_base_types&lt; _Elem,_Alloc&gt;&gt;: :_String_alloc(const std :: _ String_alloc&lt; std :: _ String_base_types&lt; _Elem,_Alloc&gt;&gt;&amp;)&#39; 同 [ _Elem =炭, _Alloc =标准::分配器&LT;炭&GT; ]
C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ INCLUDE \ xstring(587):注意:或者&#39; std :: _ String_alloc&lt; std :: _ String_base_types&lt; _Elem,_Alloc&gt;&gt;: :_String_alloc(无效)&#39; 同 [ _Elem =炭, _Alloc =标准::分配器&LT;炭&GT; ]
C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ INCLUDE \ xstring(780):注意:尝试匹配参数列表&#39;(std :: _ Wrap_alloc&lt; std :: allocator&lt;炭&GT;&GT;)&#39;
C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ INCLUDE \ xstring(775):注意:编译类模板成员函数&#39; std :: basic_string&lt; char,std :: char_traits&lt; char&gt;,std :: allocator&lt; char&gt;&gt; :: basic_string(const std :: basic_string&lt; char,std :: char_traits&lt; char&gt;,std :: allocator&lt; char&gt;&gt;&amp;)&#39;
C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ INCLUDE \ system_error(522):注意:请参阅函数模板实例化参考&#39; std :: basic_string&lt; char,std :: char_traits&lt; char&gt;,std :: allocator&lt; char&gt;&gt; :: basic_string(const std :: basic_string&lt; char,std :: char_traits&lt; char&gt;,std :: allocator&lt; char&gt;&gt;&amp;)&#39;正在编制
C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ INCLUDE \ stdexcept(21):注意:请参阅类模板实例化&#39; std :: basic_string&lt; char,std :: char_traits&lt;炭&GT;,的std ::分配器&LT;炭&GT;&GT;&#39;正在编制
如果
没有错误#include <string>
已删除在Windows 8.1上使用Microsoft(R)C / C ++优化编译器版本19.00.24210 for x64进行构建{/ 1}。