Почему я не могу переопределить конструктор копирования по умолчанию и оператор присваивания версиями шаблона в C ++
я попросилэтот вопрос Что касается перегрузки конструктора копирования и оператора присваивания версиями шаблона и рассмотрения путаницы, связанной с вопросом (поскольку это, похоже, ошибка компилятора), я подумал, что попробую использовать только конструктор копирования шаблона и оператор присваивания шаблона, чтобы увидеть, что происходит. Но они полностью игнорируются компилятором.
struct BaseClass
{
public:
BaseClass() {}
template<typename T>
BaseClass(const T& a_other)
{
int i = 0; // for break point which is not hit
}
template<typename T>
BaseClass& operator= (const T& a_other)
{
int i = 0; // for break point which is not hit
return *this;
}
};
struct MyClass : public BaseClass
{
};
int main()
{
MyClass i, j;
i = j;
return 0;
}
Почему я не могу переопределить значения по умолчанию с версиями шаблона (я подозреваю, что ответ будетзначения по умолчанию лучше соответствуют но я хотел бы, чтобы версии шаблонов действовали как значения по умолчанию)? И что я могу сделать, чтобы убедиться, что версии шаблонов вызываются вместо значений по умолчанию?