1
的VisualStudio不能編譯這個代碼(錯誤C2976)VS2015錯誤C2976
但GCC和鏘可以編譯該代碼
爲什麼???
#include <iostream>
#include <map>
template <typename... ARGS>
void Func(const std::map<ARGS...>& m)
{
//...
}
template <typename T>
void Func(const T& t)
{
//...
}
int main()
{
std::map<int, double> m;
Func(m); // error C2976: 'std::map': too few template arguments
Func(123); // OK
return 0;
}
它顯示任何錯誤? –
[std:map作爲模板參數的模板扣除失敗]的可能重複(http://stackoverflow.com/questions/26059219/template-deduction-fails-for-stdmap-as-template-parameter) – cromod