Предположим, у меня есть древовидная структура данных, реализованная с помощью класса node:
class Node
{
Node * parent;
std::vector<Node*> children;
int data_1;
std::string data_2;
double data_3;
...
float data_n;
};
Чтобы сделать глубокую копию, есть ли способ обойти запись всего шаблонного копирования для свойств не указателя? Все из
that.data_1 = this->data_1;
that.data_2 = this->data_2;
...
that.data_n = this->data_n;
Я заранее знаю, что количество свойств указателя невелико и не изменится. Однако свойства без указателя больше и колеблются по мере разработки моей программы. Таким образом, я предпочел бы избежать необходимости помнить о добавлении этого стандартного кода каждый раз, когда я добавляю новое свойство.
(Я готов использовать С++ 11 и с меньшим энтузиазмом повышать)
std::tuple
, вероятно, можно было бы использовать, но это также усложнило бы доступ к данным. - person YoungJohn   schedule 06.05.2014