C++ Добавить XML-тег для сериализации вектора пар
В моем недавнем проекте я хочу реализовать класс шаблона, этот класс очень прост, он содержит вектор данных std::pair. Фрагмент кода, как показано ниже:
template <class TKey, class TValue>
class DataModel
{
public:
DataModel() = default;
~DataModel() = default;
private:
std::vector<boost::shared_ptr<std::pair<TKey, TValue>>> mData = {};
}
Требованием моего проекта является сериализация mData. Я использовал инструмент сериализации в boost для реализации этой функции. Фрагмент кода, как показано ниже:
friend class boost::serialization::access;
template <typename Archive>
void serialize( Archive &ar, const unsigned int version )
{
ar &boost::serialization::make_nvp( "Data", mData );
}
Использовать инструмент сериализации boost очень просто и понятно. Но одна проблема заключается в том, что XML-тег для элемента std::pair в окончательном XML-файле управляется кодом повышения и не читается. Я хочу добавить какой-нибудь значимый XML-тег в выходной XML-файл. Что-то нравится ниже:
<item>
<key>{KeyValue}</key>
<value>{Value}</value>
</item>
Конечно, boost не будет сериализоваться, как приведенный выше читаемый тег XML. Можно ли изменить приведенный выше код сериализации, чтобы окончательный файл XML содержал значимый тег XML?