--- testcrange.cpp.orig	2004-05-05 18:05:00.000000000 +0400
+++ testcrange.cpp	2004-05-06 09:56:27.000000000 +0400
@@ -101,6 +101,7 @@
 #include <sstream>
 #include <time.h>
 #include <fstream>
+#include <iostream>
 
 // contains a number, as a string
 struct str_sequence {
@@ -189,14 +190,14 @@
     clock_t start = clock();
     test_func call = f;
     for ( int idx = 0; idx < times; ++idx)
-        for ( container::iterator b = c.begin(), e = c.end(); b != e; ++b)
+        for ( typename container::iterator b = c.begin(), e = c.end(); b != e; ++b)
             call(*b);
     clock_t end = clock();
     double raw_secs = (double)(end - start) / CLOCKS_PER_SEC;
 
     // use func_calls iterators
     c = copy; // run all tests on exactly the same content of the container
-    typedef container::value_type value;
+    typedef typename container::value_type value;
     start = clock();
     call = f;
     { using namespace func_calls;
@@ -208,7 +209,7 @@
     
     // use vtable_calls iterators
     c = copy; // run all tests on exactly the same content of the container
-    typedef container::value_type value;
+    typedef typename container::value_type value;
     start = clock();
     call = f;
     { using namespace vtable_calls;
@@ -220,7 +221,7 @@
 
     // use EricNiebler's for_each
     c = copy; // run all tests on exactly the same content of the container
-    typedef container::value_type value;
+    typedef typename container::value_type value;
     start = clock();
     call = f;
     { using namespace vtable_calls;
