я следующий класс в файле myclass.hpp
:конструктор копирования не вызывается в шаблонного класса
#ifndef MYCLASS_HPP
#define MYCLASS_HPP
#include <cstdlib>
#include <iostream>
template <std::size_t l, typename T>
class MyClass {
public:
MyClass();
MyClass(const MyClass<l,T>& other);
};
#include "myclass.tpp"
#endif
И файл реализации псевдо myclass.tpp
:
template <std::size_t l, typename T>
MyClass<l,T>::MyCLass() {
std::cout << "Ctor" << std::endl;
}
template <std::size_t l, typename T>
MyClass<l,T>::MyCLass(const MyCLass<l,T>& other) {
std::cout << "COPY Ctor" << std::endl;
}
В моем главном файле у меня есть:
#include "myclass.hpp"
int main(int argc, char** argv) {
MyCLass<10,int> m1;
MyClass<10,int> m2;
m1 = m2; // <-- HERE
}
Конструктор копирования не вызывается. Отпечаток следующее:
CTOR
CTOR
Что я делаю неправильно? Thankyou
Это не должно быть названо. Попробуйте определить оператор присваивания и посмотрите, что произойдет. – lapk