У меня есть такая структура:
template <class T> struct Dimensions
{
T horizontal{}, vertical{};
Dimensions() = default;
Dimensions(const T& horizontal, const T& vertical)
: horizontal(horizontal), vertical(vertical) {}
Dimensions(const Dimensions& other) = default;
Dimensions& operator=(const Dimensions& other) = default;
Dimensions(Dimensions&& other) = default; // ?
Dimensions& operator=(Dimensions&& other) = default; // ?
~Dimensions() = default;
// ... + - * / += -= *= areNull() ...
}
, которую я создаю как Dimensions<int>
или Dimensions<double>
.Так как это тривиально копируемое , какова будет лучшая политика здесь, сгенерировать конструктор перемещения и операторы присваивания перемещения как = default
или избежать неявных с помощью = delete
?