C 쌍의 벡터를 직렬화하는 사용자 지정 XML 태그를 추가 ++ std :: pair 데이터의. 아래 코드와 같습니다 :C는 벡터를 포함,이 클래스는 매우 간단합니다, 내가 템플릿 클래스를 구현하려는 내 최근 프로젝트에서 쌍</p>의 <p>을 벡터를 직렬화하는 XML 태그를 추가 ++
template <class TKey, class TValue>
class DataModel
{
public:
DataModel() = default;
~DataModel() = default;
private:
std::vector<boost::shared_ptr<std::pair<TKey, TValue>>> mData = {};
}
프로젝트 요구 사항은 mData를 serialize하는 것입니다. 이 기능을 구현하기 위해 부스트에서 직렬화 도구를 사용했습니다. 코드 스 니펫은 다음과 같습니다.
friend class boost::serialization::access;
template <typename Archive>
void serialize(Archive &ar, const unsigned int version)
{
ar &boost::serialization::make_nvp("Data", mData);
}
부스트의 직렬화 도구를 사용하는 것은 매우 간단하고 간단합니다. 하지만 한 가지 문제는 최종 XML 파일의 std :: pair 요소에 대한 XML 태그가 부스트 코드로 제어되어 읽을 수 없다는 것입니다. 출력 XML 파일에 의미있는 XML 태그를 추가하고 싶습니다. 아래에 뭔가가 있습니다 :
<item>
<key>{KeyValue}</key>
<value>{Value}</value>
</item>
물론 부스트는 위의 읽을 수있는 XML 태그로 직렬화되지 않습니다. 위의 직렬화 코드를 수정하여 최종 XML 파일에 의미있는 XML 태그가 포함되도록 할 수 있습니까?