C++ 带有模板条目的映射导致明确的声明

C++ 带有模板条目的映射导致明确的声明,c++,stdmap,c++98,C++,Stdmap,C++98,我正在使用C++98。允许我在映射中将模板声明为类型吗 当我这样做时,我得到了以下错误 #include<iostream> #include<vector> #include<map> // below template declaration is in my header file template <typename T> void function (T a, std::map<int, T> & val) //

我正在使用C++98。允许我在映射中将模板声明为类型吗

当我这样做时,我得到了以下错误

#include<iostream>
#include<vector>
#include<map>

// below template declaration is in my header file

template <typename T> void function (T a, std::map<int, T> & val) // error 2782 Template parameter T is 
                                                               // unambiguous
{
    std::cout<< a;
    // some computations on the map
}

int main()
{

  std::map<int, std::vector<double>> mp_map;
  mp_map[0].push_back(1.0);
  mp_map[0].push_back(2.0);

 function(0.0, mp_map); 

 return 0;
}
#包括
#包括
#包括
//下面的模板声明在我的头文件中
模板无效函数(ta,std::map&val)//错误2782模板参数T为
//明确的
{

std::coutchange
std::map mp_map
std::map mp_map
std::map
是语法冲突。正确的形式是您声明的
function(T,map)
,可以为
(双倍,map@eerorika是的,新语法适用于
c++11
Standard。我想知道这是否是诊断消息中的编译器错误/输入错误。文档说明C2782表示“声明”:模板参数“标识符”不明确,这与您引用的相反。