code_junkie

is it possible to have templated classes within a template class?

Nov 12th, 2011
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.64 KB | None | 0 0
  1. template <class M, class A> class C { std::list<M> m_List; ... }
  2.  
  3. Error 1 error C2079: 'std::_List_nod<_Ty,_Alloc>::_Node::_Myval' uses undefined class 'M' C:Program FilesMicrosoft Visual Studio 9.0VCincludelist 41
  4.  
  5. // template definition file
  6. #include <list>
  7.  
  8. template< class aM, class aT >
  9. class C {
  10. std::list<M> m_List;
  11. ...
  12. };
  13.  
  14. // bad template usage file causing the aforementioned error
  15. class M;
  16. ...
  17. C<M,OtherClass> c; // this would result in your error
  18.  
  19. class M { double data; };
  20.  
  21. // better template usage file
  22. class M { double data; }; // or #include the class header
  23. ...
  24.  
  25. C<M,OtherClass> c; // this would have to compile
Add Comment
Please, Sign In to add comment