Я создаю экземпляры различных объектов на основе XML-файла. Чтобы создать объект из шаблона, я указываю тип данных в xml-файле. Поскольку у меня довольно много шаблонов и типов данных, которые должны поддерживаться, я бы хотел немного сжать свой код. Я думал, что смогу сделать это, используя макросы, но так как я никогда не использовал их, я понятия не имею, как это сделать. Предоставляя список типов данных, которые я хотел бы поддержать, я подумал, что могу просто написать
MACRO(A, dataTypes)
вместо:
if(s == "float")
{
return new A<float>(name);
}
else if(s == "int")
{
return new A<int>(name);
}
else if(s == "bool")
{
return new A<bool>(name);
}
else if(s == "std::string")
{
return new A<std::string>(name);
}
...
Но как я могу определить такой макрос?
Код должен также компилироваться на Android, поэтому он не должен полагаться на другую библиотеку, такую как boost.