title: Handmade auto template (without using C++0x)
body: <p>How can be realized the <strong>auto</strong> keyword functionality without using c++0x standard?</p>
  
  <pre><code>for(std::deque&lt;std::pair&lt;int, int&gt; &gt;::iterator it = points.begin();
      it != points.end(); ++it)
  {
     ...
  }
  </code></pre>
  
  <p>Maybe such class:</p>
  
  <pre><code>class AUTO
  {
  public:
     template &lt;typename T1&gt;
     AUTO(T1);
  
     template &lt;typename T2&gt;
     operator T2();
  };
  </code></pre>
  
  <p>With such usage:</p>
  
  <pre><code>for(AUTO it = points.begin(); it != points.end(); ++it)
  {
     ...
  }
  </code></pre>
  
  <p>But, T1 and T2 are different.
  How to move info about T1  to <em>operator T2()</em>?
  Is it really possible?</p>