Почему я не могу переопределить конструктор копирования по умолчанию и оператор присваивания версиями шаблона в 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;
}

Почему я не могу переопределить значения по умолчанию с версиями шаблона (я подозреваю, что ответ будетзначения по умолчанию лучше соответствуют но я хотел бы, чтобы версии шаблонов действовали как значения по умолчанию)? И что я могу сделать, чтобы убедиться, что версии шаблонов вызываются вместо значений по умолчанию?

Ответы на вопрос(2)

Ваш ответ на вопрос