Удивлен, что никто не упомянул об этом, но вы можете просто создать шаблон на любом 2D, поддерживающем [] [] семантику.
template <typename TwoD>
void myFunction(TwoD& myArray){
myArray[x][y] = 5;
etc...
}
// call with
double anArray[10][10];
myFunction(anArray);
Он работает с любой 2D-массивной структурой данных, такой как std::vector<std::vector<T>>
или пользовательский тип, чтобы максимизировать повторное использование кода.
Цель моего приложения - создать набор XML-файлов, называемых «компонентами»
blockquote>Я думаю, что вы подходите к проблеме с другой стороны. В DDD вы должны сначала смоделировать бизнес-правила, независимые от инфраструктуры, такой как форматы файлов. Агрегаты должны обеспечивать соблюдение этих правил. Но если преобразование некоторых данных в xml-файлы действительно является целью вашей программы, то DDD - это полное излишество, и было бы лучше написать скрипт или что-то подобное для выполнения этой работы.