模板对象作为参数传递给另一个模板对象

时间:2012-11-29 18:13:17

标签: c++ templates

  

可能重复:
  c++ template typename iterator

考虑这样的代码:

#include <map>
#include <boost/shared_ptr.hpp>

template <typename T>
class Test
{
     typedef std::map< int, boost::shared_ptr<T> > TMap;
     TMap myMap;

     void test()
     {
         TMap::const_iterator iter = myMap.begin(); // line 12
     }
};

在使用g++ main.cpp进行正常编译后,返回以下行:

main.cpp: In member function ‘void Test<T>::test()’:
main.cpp:12: error: expected ‘;’ before ‘iter’

如果我将std::map< int, boost::shared_ptr<T> >更改为std::map< int, int >,则会进行编译。

似乎模板对象boost::shared_ptr<T>作为参数传递给另一个模板对象时出现问题。

  1. 为什么吗
  2. 如何解决此问题?

0 个答案:

没有答案