How to assign two containers having different template parameters
===

Let's suppose that I have a class container:  


    template<class T, int size>
    class container
    {
    private:
        T* data;
        int length;
    public:
        container()
        {
            data=new T[size];
            length=size;
        }
        ~container()
        {
            if(length>0)
                delete[] data;
        }
        container& operator= (container<T,size> c)
        {
            if(length>0)
               delete[] data;
            data=new T[c.size];
            length=c.length;
            for(int i=0; i<length; i++)
                data[i]=c.data[i];
            return *this;
        }
    };


The problem is that if I have two container of different size, I can't use the = operator to assign one to the other.For example:  

    container<int,4> c1;
    container<int,5> c2;
    c1=c2;  // syntax error: 4!=5

Classes like c++11 array allow to do this.  
How to do that?
