Это то, о чем я давно задумался. Возьмем следующий пример:
struct matrix
{
float data[16];
};
Я знаю, что делает конструктор и деструктор по умолчанию в этом конкретном примере (ничего), но как насчет конструктора копирования и оператора назначения копирования?
struct matrix
{
float data[16];
// automatically generated copy constructor
matrix(const matrix& that) : // What happens here?
{
// (or here?)
}
// automatically generated copy assignment operator
matrix& operator=(const matrix& that)
{
// What happens here?
return *this;
}
};
Включает ли он std::copy
или std::uninitialized_copy
или memcpy
или memmove
или что?