Re[2]: шабл-ый оператор шабл-го класса
От: Andrew_D  
Дата: 10.04.06 22:26
Оценка:
A>template<typename T>
A>template<> CL<T> CL<T>::operator = <OtherT> (const CL<SrcT> &Src)
— запрещена такая последовательность.

#include <iostream>

template<typename Type>
class CL
{
public:
    
    CL& operator=(const CL&)
    {
        std::cout<<"default assign operator"<<std::endl;
        return *this;
    }

    template<typename T> CL& operator=(const CL<T>&)
    {
        std::cout<<"template<typename T> CL& operator=(const CL<T>&)"<<std::endl;
        return *this;
    }

    template<> CL& operator=<std::string>(const CL<std::string>&)
    {
        std::cout<<"template<> CL& operator=<std::string>(const CL<std::string>&)"<<std::endl;
        return *this;
    }
};

int _tmain(int argc, _TCHAR* argv[])
{
    CL<int>            _val1;
    CL<int>            _val2;
    CL<std::string>        _val3; // здесь компилер выдаст варнинг ...
    CL<double>            _val4;
    _val1=_val2;
    _val1=_val3;
    _val1=_val4;
    return 0;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.