C ++ Map默认参数typedef要求

时间:2013-06-08 16:37:41

标签: c++ templates stl

似乎我的编译器在下面的代码块上死了,只有在我为GCC 4.1.2上的默认构造函数键入地图后才能解决。我缺少一些C ++或GCC奇怪的东西吗?

错误:(缺少,或......之前<标识符)

class Blah
{
  static void dothis(std::map<int,int> mymap = std::map<int,int>());
}

使用:

class Blah
{
  typedef std::map<int,int> MapType;
  static void dothis(std::map<int,int> mymap = MapType());
}

1 个答案:

答案 0 :(得分:2)

  

我是否缺少一些C ++或GCC奇怪的东西?

您的代码是合法的,您的编译器已经过时了。尝试升级您的编译器。以下是使用GCC 4.8.0编译的代码的live example