У меня есть класс T с n переменными-членами, например
class T{
ushort name;
ushort id;
double value;
.....etc...
};
У меня также есть коллекция классов T1, T2 ...., каждая из которых состоит из переменных-членов, которые являются подмножествами переменных-членовT (из-за отсутствия лучшего слова, позвольте мне назвать это подмножество типа T).Например, T1 может быть
class T1 {
ushort name;
double value;
};
, который просто выбирает два члена T.
Я хотел бы написать метод
template <typename X>
T join(T t, X x)
, где мы возвращаемкласс типа T путем замены значений каждой переменной-члена в t значениями x (при условии, что X является подтипом T), а другие значения t остаются прежними.
Я могу думать оделать это через специализации.Но должен быть элегантный способ сделать это (возможно, определить, когда тип X является подмножеством типа T, и делать правильные вещи).