Добрый день,
Есть класс представляющий коллекцию векторов разных типов
class ObjCollection
{
std::vector<ObjType1> objects1;
std::vector<ObjType2> objects2;
...
std::vector<ObjTypeN> objectsN
};
Есть много функций работающих с этими коллекциями, которые сводятся к последовательным вызовам некоторых шаблонных
функций над соответствующими векторами:
SomeRetType someFunc(const ObjCollection& coll_A,
const ObjCollection& coll_B,
...
const ObjCollection& coll_X)
{
prepareSomeActions<ObjType1>(coll_A.objects1,
coll_B.objects1,
...
coll_Y.objects1);
...
prepareSomeActions<ObjTypeN>(coll_A.objectsN,
coll_B.objectsN,
...
coll_Y.objectsN);
}
Таким образом в каждой из функций приходиться выписывать по одному вызову на каждый тип векторов, что в итоге выливается в большую некрасивую кучу кода.
Подскажите пожалуйста подход помимо вложенных макросов, позволяющий сократить объем кода?
Спасибо.