fork download
  1. #include <iostream>
  2.  
  3. template<typename T>
  4. struct Iterator {};
  5.  
  6. template<typename T>
  7. struct Node {};
  8.  
  9. template<class T>
  10. class SinglyLinkedList
  11. {
  12. public:
  13. typedef struct Iterator<T> Iterator;
  14.  
  15. SinglyLinkedList() {};
  16.  
  17. Iterator Begin(); //Error
  18. ::Iterator<T> End();
  19.  
  20. private:
  21. Node<T> * m_pHead;
  22. };
  23.  
  24.  
  25. template<class T>
  26. Iterator<T> SinglyLinkedList<T>::Begin()
  27. {
  28. return Iterator();
  29. }
  30.  
  31. template<class T>
  32. Iterator<T> SinglyLinkedList<T>::End()
  33. {
  34. return Iterator();
  35. }
  36.  
  37. int main()
  38. {
  39. SinglyLinkedList<int> ll;
  40. Iterator<int> bar = ll.Begin();
  41. bar = ll.End();
  42.  
  43. SinglyLinkedList<int>::Iterator foo = ll.Begin();
  44. foo = ll.End();
  45. return 0;
  46. }
Success #stdin #stdout 0s 3336KB
stdin
Standard input is empty
stdout
Standard output is empty