struct reference and operator=
<p>I have a class like this:</p>

<pre><code>template &lt;class T&gt;
    class bag
    {
    private:    
        typedef struct{T item; unsigned int count;} body;
        typedef struct _node{_node* prev; body _body; _node* next;}* node;  
        struct iterator{
            enum exception{NOTDEFINED, OUTOFLIST};
            body operator*();

            explicit iterator();
            explicit iterator(const iterator&amp;);
            iterator&amp; operator=(const iterator&amp;);
            iterator&amp; operator++(int);
            iterator&amp; operator--(int);
            bool operator==(const iterator&amp;) const;
            bool operator!() const;     
        private:
            node current;

            friend class bag;
        };
        node head;
        node foot;

        iterator _begin;
        iterator _end;

        /* ... */

    public: /* ... */
        bag();
        const iterator&amp; begin;
        const iterator&amp; end;        
    };
</code></pre>

<p>In the bag() I have to set the reference begin to _begin, and end to _end.</p>

<pre><code>begin = _begin;
end = _end;
</code></pre>

<p>But I think this line</p>

<pre><code>begin = _begin;
</code></pre>

<p>invokes bag::iterator::operator=() function.</p>

<p>How can i avoid that?</p>
