Есть задача - создать список, например, из объектов Device.
class Device
{
public:
Device();
std::string name;
int id;
std::list<Device*> deviceList;
}
Под windows(*nix) пишется одна функция Device* createDevice(...), и пишется какой-нибудь файл, типа xml, с описанием всех девайсов которые должны быть в списке. createDevice парсит этот файл и создает нужный список. если нужно добавить девайс в список или изменить праметр, то просто правится *.xml файл, а код остается неизменный.
Теперь стоит таже задача, тока для микроконтроллера у которого есть только память программ и озу. Нет ос и нет файловой системы. Можно конечно в коде жёстко написать создание этого списка, типа
std::list<Device*> list;
list.push_back(createDevice1());
list.push_back(createDevice2());
list.push_back(createDevice3());
list.push_back(createDevice4());
....
list.push_back(createDevice50());
каждая функция по созданию объекта ( createDevice*() ) будет уникальна. В каждой функции createDevice* будет создаваться свой список deviceList. Вобщем код получится очень грамоздкий. Да и добавлять девайсы в список, править параметры достаточно сложно, придётся править исходный код.
Хотелось бы написать, как и в случае для Windows, одну функции по созданию девайсов, и ..... как бы в код внедрить что-то типа xml? Как то можно описать это дерево как-то в *.h файле или еще в каком инклуде и потом для добавления/редактирования списка девайсов просто править этот аш?